Display the QElapsedTimer reference time in %{time}
This allows the time to be synchronized between different programs, as opposed to how long it has been since the message pattern was first parsed... Change-Id: If8bdfa0d997ca418a5fcae40f8c34fb77f90d2aa Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
This commit is contained in:
parent
71d576abc8
commit
5d366f7e42
@ -828,6 +828,9 @@ struct QMessagePattern {
|
||||
const char **literals;
|
||||
const char **tokens;
|
||||
QString timeFormat;
|
||||
#ifndef QT_BOOTSTRAPPED
|
||||
QElapsedTimer timer;
|
||||
#endif
|
||||
#ifdef QLOGGING_HAVE_BACKTRACE
|
||||
int backtraceDepth;
|
||||
QString backtraceSeparator;
|
||||
@ -835,10 +838,6 @@ struct QMessagePattern {
|
||||
|
||||
bool fromEnvironment;
|
||||
static QBasicMutex mutex;
|
||||
#ifndef QT_BOOTSTRAPPED
|
||||
QElapsedTimer timer;
|
||||
QDateTime startTime;
|
||||
#endif
|
||||
};
|
||||
|
||||
QBasicMutex QMessagePattern::mutex;
|
||||
@ -851,9 +850,6 @@ QMessagePattern::QMessagePattern()
|
||||
, backtraceSeparator(QLatin1Char('|'))
|
||||
#endif
|
||||
, fromEnvironment(false)
|
||||
#ifndef QT_BOOTSTRAPPED
|
||||
, startTime(QDateTime::currentDateTime())
|
||||
#endif
|
||||
{
|
||||
#ifndef QT_BOOTSTRAPPED
|
||||
timer.start();
|
||||
@ -1204,6 +1200,12 @@ QString qFormatLogMessage(QtMsgType type, const QMessageLogContext &context, con
|
||||
if (pattern->timeFormat == QLatin1String("process")) {
|
||||
quint64 ms = pattern->timer.elapsed();
|
||||
message.append(QString().sprintf("%6d.%03d", uint(ms / 1000), uint(ms % 1000)));
|
||||
} else if (pattern->timeFormat == QLatin1String("boot")) {
|
||||
// just print the milliseconds since the elapsed timer reference
|
||||
// like the Linux kernel does
|
||||
pattern->timer.elapsed();
|
||||
uint ms = pattern->timer.msecsSinceReference();
|
||||
message.append(QString().sprintf("%6d.%03d", uint(ms / 1000), uint(ms % 1000)));
|
||||
} else if (pattern->timeFormat.isEmpty()) {
|
||||
message.append(QDateTime::currentDateTime().toString(Qt::ISODate));
|
||||
} else {
|
||||
@ -1554,6 +1556,9 @@ void qErrnoWarning(int code, const char *msg, ...)
|
||||
\row \li \c %{threadid} \li ID of current thread
|
||||
\row \li \c %{type} \li "debug", "warning", "critical" or "fatal"
|
||||
\row \li \c %{time process} \li time of the message, in seconds since the process started (the token "process" is literal)
|
||||
\row \li \c %{time boot} \li the time of the message, in seconds since the system boot if that
|
||||
can be determined (the token "boot" is literal). If the time since boot could not be obtained,
|
||||
the output is indeterminate (see QElapsedTimer::msecsSinceReference()).
|
||||
\row \li \c %{time [format]} \li system time when the message occurred, formatted by
|
||||
passing the \c format to \l QDateTime::toString(). If the format is
|
||||
not specified, the format of Qt::ISODate is used.
|
||||
|
@ -134,6 +134,10 @@ qint64 QElapsedTimer::elapsed() const Q_DECL_NOTHROW
|
||||
number of milliseconds since January 1st, 1970 at 0:00 UTC (that is, it
|
||||
is the Unix time expressed in milliseconds).
|
||||
|
||||
On Linux, Windows and OS X/iOS systems, this value is usually the time
|
||||
since the system boot, though it usually does not include the time the
|
||||
system has spent in sleep states.
|
||||
|
||||
\sa clockType(), elapsed()
|
||||
*/
|
||||
qint64 QElapsedTimer::msecsSinceReference() const Q_DECL_NOTHROW
|
||||
|
Loading…
Reference in New Issue
Block a user