X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcommon%2Flogger.cpp;h=17c473b5a1643052606524e79d04c979c4a97890;hp=5d7c64a3f285e7409865160fe12e92fbebec8c7a;hb=4c83963b1d77f4c2dbae606876be0eee59f53dae;hpb=6b75ac568098c17de5f0a98ce0d96781b86e98b3 diff --git a/src/common/logger.cpp b/src/common/logger.cpp index 5d7c64a3..17c473b5 100644 --- a/src/common/logger.cpp +++ b/src/common/logger.cpp @@ -19,7 +19,7 @@ ***************************************************************************/ #include "logger.h" -#include "global.h" +#include "quassel.h" #include #include @@ -27,35 +27,53 @@ Logger::~Logger() { QDateTime date = QDateTime::currentDateTime(); - if(stream->logLevel == DebugLevel) stream->buffer.prepend("Debug: "); - else if (stream->logLevel == InfoLevel) stream->buffer.prepend("Info: "); - else if (stream->logLevel == WarningLevel) stream->buffer.prepend("Warning: "); - else if (stream->logLevel == ErrorLevel) stream->buffer.prepend("Error: "); - stream->buffer.prepend(date.toString("yyyy-MM-dd hh:mm:ss ")); + if(_logLevel == DebugLevel) _buffer.prepend("Debug: "); + else if (_logLevel == InfoLevel) _buffer.prepend("Info: "); + else if (_logLevel == WarningLevel) _buffer.prepend("Warning: "); + else if (_logLevel == ErrorLevel) _buffer.prepend("Error: "); + _buffer.prepend(date.toString("yyyy-MM-dd hh:mm:ss ")); log(); - delete stream; } void Logger::log() { LogLevel lvl; - if (Global::parser.value("loglevel") == "Debug") lvl = DebugLevel; - else if (Global::parser.value("loglevel") == "Info") lvl = InfoLevel; - else if (Global::parser.value("loglevel") == "Warning") lvl = WarningLevel; - else if (Global::parser.value("loglevel") == "Error") lvl = ErrorLevel; + if (Quassel::optionValue("loglevel") == "Debug") lvl = DebugLevel; + else if (Quassel::optionValue("loglevel") == "Info") lvl = InfoLevel; + else if (Quassel::optionValue("loglevel") == "Warning") lvl = WarningLevel; + else if (Quassel::optionValue("loglevel") == "Error") lvl = ErrorLevel; else lvl = InfoLevel; - if(stream->logLevel < lvl) return; + if(_logLevel < lvl) return; // if we can't open logfile we log to stdout QTextStream out(stdout); QFile file; - if(!Global::parser.value("logfile").isEmpty()) { - file.setFileName(Global::parser.value("logfile")); + if(!Quassel::optionValue("logfile").isEmpty()) { + file.setFileName(Quassel::optionValue("logfile")); if (file.open(QIODevice::Append | QIODevice::Text)) { out.setDevice(&file); - stream->buffer.remove(QChar('\n')); + _buffer.remove(QChar('\n')); } } - out << stream->buffer << "\n"; + out << _buffer << endl; if(file.isOpen()) file.close(); } + + +void Logger::logMessage(QtMsgType type, const char *msg) { + switch (type) { + case QtDebugMsg: + Logger(Logger::DebugLevel) << msg; + break; + case QtWarningMsg: + Logger(Logger::WarningLevel) << msg; + break; + case QtCriticalMsg: + Logger(Logger::ErrorLevel) << msg; + break; + case QtFatalMsg: + Logger(Logger::ErrorLevel) << msg; + Quassel::logFatalMessage(msg); + return; + } +}