void Logging::verboseMessageHandler(QtMsgType type, const QMessageLogContext& context, const QString& message) { // log prefix is in the following format // [DEBUG] [TIMESTAMP] [PID:PARENT_PID] [TARGET] logged string QString prefixString = QString("[%1]").arg(stringForLogType(type)); time_t rawTime; time(&rawTime); struct tm* localTime = localtime(&rawTime); char dateString[100]; strftime(dateString, sizeof(dateString), DATE_STRING_FORMAT, localTime); prefixString.append(QString(" [%1]").arg(dateString)); prefixString.append(QString(" [%1").arg(getpid())); pid_t parentProcessID = getppid(); if (parentProcessID != 0) { prefixString.append(QString(":%1]").arg(parentProcessID)); } else { prefixString.append("]"); } if (Logging::targetName) { prefixString.append(QString(" [%1]").arg(Logging::targetName)); } fprintf(stdout, "%s %s\n", prefixString.toLocal8Bit().constData(), message.toLocal8Bit().constData()); }
// we have a match and haven't yet printed this message. _onlyOnceMessageCountHash[message] = 1; // break the foreach so we output the first match break; } else { // We've already printed this message, don't print it again. return QString(); } } } } // log prefix is in the following format // [DEBUG] [TIMESTAMP] [PID] [TARGET] logged string QString prefixString = QString("[%1]").arg(stringForLogType(type)); prefixString.append(QString(" [%1]").arg(QDateTime::currentDateTime().toString(DATE_STRING_FORMAT))); if (_shouldOutputPID) { prefixString.append(QString(" [%1]").arg(QCoreApplication::instance()->applicationPid())); } if (!_targetName.isEmpty()) { prefixString.append(QString(" [%1]").arg(_targetName)); } QString logMessage = QString("%1 %2").arg(prefixString, message); fprintf(stdout, "%s\n", qPrintable(logMessage)); return logMessage;