X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcommon%2Flogger.cpp;h=d17e18226c40694850be7ac4de79a3af3a91053d;hp=b37abc29c4eb4d335ccad781db354c18a5d824a0;hb=c18e611a6b8c07049cc82b2dcdb5b138d9a6dd43;hpb=c1cf157116de7fc3da96203aa6f03c38c7ebb650 diff --git a/src/common/logger.cpp b/src/common/logger.cpp index b37abc29..d17e1822 100644 --- a/src/common/logger.cpp +++ b/src/common/logger.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2018 by the Quassel Project * + * Copyright (C) 2005-2019 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -37,7 +37,27 @@ namespace { QByteArray msgWithTime(const Logger::LogEntry& msg) { - return (msg.timeStamp.toString("yyyy-MM-dd hh:mm:ss ") + msg.message + "\n").toUtf8(); + QString levelString; + + switch (msg.logLevel) { + case Logger::LogLevel::Debug: + levelString = "[Debug] "; + break; + case Logger::LogLevel::Info: + levelString = "[Info ] "; + break; + case Logger::LogLevel::Warning: + levelString = "[Warn ] "; + break; + case Logger::LogLevel::Error: + levelString = "[Error] "; + break; + case Logger::LogLevel::Fatal: + levelString = "[FATAL] "; + break; + } + + return (msg.timeStamp.toString("yyyy-MM-dd hh:mm:ss ") + levelString + msg.message + "\n").toUtf8(); } } // namespace @@ -106,6 +126,23 @@ void Logger::setup(bool keepMessages) #ifdef HAVE_SYSLOG _syslogEnabled = Quassel::isOptionSet("syslog"); + + Quassel::RunMode mode = Quassel::runMode(); + Quassel::BuildInfo info = Quassel::buildInfo(); + QString prgname = info.applicationName; + + if (mode == Quassel::RunMode::ClientOnly) { + prgname = info.clientApplicationName; + } else if (mode == Quassel::RunMode::CoreOnly) { + prgname = info.coreApplicationName; + } + + _prgname = prgname.toLocal8Bit(); + + // set up options, program name, and facility for later calls to syslog(3) + if (_syslogEnabled) { + openlog(_prgname.constData(), LOG_PID, LOG_USER); + } #endif _initialized = true; @@ -147,28 +184,8 @@ void Logger::handleMessage(QtMsgType type, const QString& msg) void Logger::handleMessage(LogLevel level, const QString& msg) { - QString logString; - - switch (level) { - case LogLevel::Debug: - logString = "[Debug] "; - break; - case LogLevel::Info: - logString = "[Info ] "; - break; - case LogLevel::Warning: - logString = "[Warn ] "; - break; - case LogLevel::Error: - logString = "[Error] "; - break; - case LogLevel::Fatal: - logString = "[FATAL] "; - break; - } - // Use signal connection to make this method thread-safe - emit messageLogged({QDateTime::currentDateTime(), level, logString += msg}); + emit messageLogged({QDateTime::currentDateTime(), level, msg}); } void Logger::onMessageLogged(const LogEntry& message) @@ -208,7 +225,7 @@ void Logger::outputMessage(const LogEntry& message) case LogLevel::Fatal: prio = LOG_CRIT; } - syslog(prio | LOG_USER, "%s", qPrintable(message.message)); + syslog(prio, "%s", qPrintable(message.message)); } #endif