/***************************************************************************
- * Copyright (C) 2005-2018 by the Quassel Project *
+ * Copyright (C) 2005-2020 by the Quassel Project *
* devel@quassel-irc.org *
* *
* This program is free software; you can redistribute it and/or modify *
Q_OBJECT
public:
- Logger(QObject *parent = nullptr);
+ Logger(QObject* parent = nullptr);
~Logger() override;
- enum class LogLevel {
+ enum class LogLevel
+ {
Debug,
Info,
Warning,
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;
};
/**
*/
std::vector<Logger::LogEntry> 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.
* @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:
/**
*
* @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};
std::vector<LogEntry> _messages;
bool _keepMessages{true};
bool _initialized{false};
+ QByteArray _prgname;
};
Q_DECLARE_METATYPE(Logger::LogEntry)