diff options
author | Kai Koehne <kai.koehne@digia.com> | 2014-07-18 14:40:59 +0200 |
---|---|---|
committer | Kai Koehne <kai.koehne@digia.com> | 2014-07-30 16:27:22 +0200 |
commit | e968793e81ffcb439210e7eb422c0063834cfdc9 (patch) | |
tree | e551d2d19b7f6281c117c671741d306f27267f35 /src/corelib | |
parent | c38af4e6bb51cfb1b52a38dea06a0a8a94db9545 (diff) |
Add qFormatLogMessage()
Export the former qMessageFormatString() as qFormatLogMessage(). This
allows custom message handlers to format their messages just like the
default message handler, taking qSetMessagePattern() /
QT_MESSAGE_PATTERN into account.
The method should arguably not add the '\n' at the end, which a follow
up commit will fix.
Change-Id: Ib2a9cfda91473df079daf03bf3197e6ac63e013e
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Alex Blasche <alexander.blasche@digia.com>
Diffstat (limited to 'src/corelib')
-rw-r--r-- | src/corelib/global/qlogging.cpp | 24 | ||||
-rw-r--r-- | src/corelib/global/qlogging.h | 4 |
2 files changed, 20 insertions, 8 deletions
diff --git a/src/corelib/global/qlogging.cpp b/src/corelib/global/qlogging.cpp index 847b7cb4c0..013efec3d5 100644 --- a/src/corelib/global/qlogging.cpp +++ b/src/corelib/global/qlogging.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). ** Copyright (C) 2014 Olivier Goffart <ogoffart@woboq.com> ** Contact: http://www.qt-project.org/legal ** @@ -1052,10 +1052,20 @@ static void slog2_default_handler(QtMsgType msgType, const char *message) Q_GLOBAL_STATIC(QMessagePattern, qMessagePattern) /*! - \internal -*/ -Q_CORE_EXPORT QString qMessageFormatString(QtMsgType type, const QMessageLogContext &context, - const QString &str) + \relates <QtGlobal> + \since 5.4 + + Generates a formatted string out of the \a type, \a context, \a str arguments. + + qFormatLogMessage returns a QString that is formatted according to the current message pattern. + It can be used by custom message handlers to format output similar to Qt's default message + handler. + + The function is thread-safe. + + \sa qInstallMessageHandler(), qSetMessagePattern() + */ +QString qFormatLogMessage(QtMsgType type, const QMessageLogContext &context, const QString &str) { QString message; @@ -1278,7 +1288,7 @@ static void qDefaultMessageHandler(QtMsgType type, const QMessageLogContext &con bool toConsole; }; - QString logMessage = qMessageFormatString(type, context, buf); + QString logMessage = qFormatLogMessage(type, context, buf); #if defined(Q_OS_WIN) && defined(QT_BUILD_CORE_LIB) if (!qWinLogToStderr()) { @@ -1583,7 +1593,7 @@ void qErrnoWarning(int code, const char *msg, ...) environment variable; if both qSetMessagePattern() is called and QT_MESSAGE_PATTERN is set, the environment variable takes precedence. - qSetMessagePattern() has no effect if a custom message handler is installed. + Custom message handlers can use qFormatLogMessage() to take \a pattern into account. \sa qInstallMessageHandler(), {Debugging Techniques} */ diff --git a/src/corelib/global/qlogging.h b/src/corelib/global/qlogging.h index 043f799414..fe965ec7f5 100644 --- a/src/corelib/global/qlogging.h +++ b/src/corelib/global/qlogging.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the QtCore module of the Qt Toolkit. @@ -167,6 +167,8 @@ typedef void (*QtMessageHandler)(QtMsgType, const QMessageLogContext &, const QS Q_CORE_EXPORT QtMessageHandler qInstallMessageHandler(QtMessageHandler); Q_CORE_EXPORT void qSetMessagePattern(const QString &messagePattern); +Q_CORE_EXPORT QString qFormatLogMessage(QtMsgType type, const QMessageLogContext &context, + const QString &buf); QT_END_NAMESPACE #endif // QLOGGING_H |