X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcommon%2Flogger.h;h=f55590c1c696efc1538f5846f5f1440050ac1693;hp=9d80305bb38f19a7953346832e746453e22666a1;hb=52209badc8e769e50aa3019b63689dda0e79e9d0;hpb=92fc8c5b119111a35ab8423c3cbde5b2a022badf diff --git a/src/common/logger.h b/src/common/logger.h index 9d80305b..f55590c1 100644 --- a/src/common/logger.h +++ b/src/common/logger.h @@ -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 * @@ -38,10 +38,11 @@ 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, @@ -49,10 +50,18 @@ public: Fatal }; - struct LogEntry { + struct COMMON_EXPORT LogEntry + { QDateTime timeStamp; LogLevel logLevel; QString message; + + /** + * Gets this log entry in a printable format, with timestamp and log level + * + * @return the log entry, formatted with timestamp and log level + */ + QString toString() const; }; /** @@ -74,7 +83,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. @@ -84,7 +93,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: /** @@ -92,14 +101,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}; @@ -109,6 +118,7 @@ private: std::vector _messages; bool _keepMessages{true}; bool _initialized{false}; + QByteArray _prgname; }; Q_DECLARE_METATYPE(Logger::LogEntry)