X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fcommon%2Flogger.h;h=751fa05f8813d07762d19ddfd87eaae11cd1a300;hb=b8db3c55a7f66a8d6ecabf9039aabceff9ae4837;hp=7752a74add9e9a05068a0e22042d187b3bd24d3f;hpb=ab7ef4d24f62b5848b628482b7762ebfc0b53e1a;p=quassel.git diff --git a/src/common/logger.h b/src/common/logger.h index 7752a74a..751fa05f 100644 --- a/src/common/logger.h +++ b/src/common/logger.h @@ -20,6 +20,8 @@ #pragma once +#include "common-export.h" + #include #include @@ -31,15 +33,16 @@ /** * The Logger class encapsulates the various configured logging backends. */ -class Logger : public QObject +class COMMON_EXPORT Logger : public QObject { Q_OBJECT public: - Logger(QObject *parent = nullptr); + Logger(QObject* parent = nullptr); ~Logger() override; - enum class LogLevel { + enum class LogLevel + { Debug, Info, Warning, @@ -47,7 +50,8 @@ public: Fatal }; - struct LogEntry { + struct LogEntry + { QDateTime timeStamp; LogLevel logLevel; QString message; @@ -61,9 +65,9 @@ public: * and won't store further ones. * * @param keepMessages Whether messages should be kept - * @returns true, if initialization was successful + * @throws ExitException, if command line options are invalid */ - bool setup(bool keepMessages); + void setup(bool keepMessages); /** * Accesses the stores log messages, e.g. for consumption by DebugLogWidget. @@ -72,7 +76,7 @@ public: */ std::vector messages() const; - static void messageHandler(QtMsgType type, const QMessageLogContext &context, const QString &message); + static void messageHandler(QtMsgType type, const QMessageLogContext& context, const QString& message); /** * Takes the given message with the given log level, formats it and emits the @a messageLogged() signal. @@ -82,7 +86,7 @@ public: * @param logLevel The log leve of the message * @param message The message */ - void handleMessage(LogLevel logLevel, const QString &message); + void handleMessage(LogLevel logLevel, const QString& message); signals: /** @@ -90,14 +94,14 @@ signals: * * @param message The message that was logged */ - void messageLogged(const Logger::LogEntry &message); + void messageLogged(const Logger::LogEntry& message); private slots: - void onMessageLogged(const Logger::LogEntry &message); + void onMessageLogged(const Logger::LogEntry& message); private: - void handleMessage(QtMsgType type, const QString &message); - void outputMessage(const LogEntry &message); + void handleMessage(QtMsgType type, const QString& message); + void outputMessage(const LogEntry& message); private: LogLevel _outputLevel{LogLevel::Info};