void Logger::_log(LogType type, QString message) { const QString& prefix = _log_str_arr[type]; QString fullMessage = prefix + message; QVariantMap entry; entry.insert("type", type); entry.insert("message", message); _log_cache->append(entry); switch (type) { case LOG_DEBUG: case LOG_INFO: _original_handler(QtDebugMsg, QMessageLogContext(), fullMessage); return; case LOG_ERROR: _original_handler(QtCriticalMsg, QMessageLogContext(), fullMessage); return; case LOG_WARN: _original_handler(QtWarningMsg, QMessageLogContext(), fullMessage); return; } }
void QtServiceBase::logMessage(const QString &message, MessageType type, int id, uint category, const QByteArray &data) { #if defined(QTSERVICE_DEBUG) QByteArray dbgMsg("[LOGGED "); switch (type) { case Error: dbgMsg += "Error] " ; break; case Warning: dbgMsg += "Warning] "; break; case Success: dbgMsg += "Success] "; break; case Information: //fall through default: dbgMsg += "Information] "; break; } # if QT_VERSION >= 0x050000 qtServiceLogDebug((QtMsgType)-1, QMessageLogContext(), QLatin1String(dbgMsg) + message); # else qtServiceLogDebug((QtMsgType)-1, (dbgMsg + message.toAscii()).constData()); # endif #endif Q_D(QtServiceBase); if (!winServiceInit()) return; WORD wType; switch (type) { case Error: wType = EVENTLOG_ERROR_TYPE; break; case Warning: wType = EVENTLOG_WARNING_TYPE; break; case Information: wType = EVENTLOG_INFORMATION_TYPE; break; default: wType = EVENTLOG_SUCCESS; break; } HANDLE h = pRegisterEventSource(0, (wchar_t *)d->controller.serviceName().utf16()); if (h) { const wchar_t *msg = (wchar_t*)message.utf16(); const char *bindata = data.size() ? data.constData() : 0; pReportEvent(h, wType, category, id, 0, 1, data.size(),(const wchar_t **)&msg, const_cast<char *>(bindata)); pDeregisterEventSource(h); } }
MessageHandler::MessageHandler(QObject *parent) : QObject(parent) { this->message(QtDebugMsg, QMessageLogContext(), QString("READY.")); }