core/log: add filesystem logger

This commit is contained in:
outfoxxed 2024-08-02 21:37:52 -07:00
parent 46f48f2f87
commit 6bf4826ae7
Signed by: outfoxxed
GPG key ID: 4C88A185FB89301E
9 changed files with 299 additions and 53 deletions

View file

@ -1,6 +1,38 @@
#pragma once
class LogManager {
public:
static void setup();
#include <utility>
#include <qlogging.h>
#include <qobject.h>
#include <qtextstream.h>
#include <qtmetamacros.h>
struct LogMessage {
explicit LogMessage(QtMsgType type, const char* category, QByteArray body)
: type(type)
, category(category)
, body(std::move(body)) {}
QtMsgType type;
const char* category;
QByteArray body;
};
class LogManager: public QObject {
Q_OBJECT;
public:
static LogManager* instance();
static void formatMessage(QTextStream& stream, const LogMessage& msg, bool color);
signals:
void logMessage(LogMessage msg);
private:
explicit LogManager();
static void messageHandler(QtMsgType type, const QMessageLogContext& context, const QString& msg);
bool colorLogs;
QTextStream stdoutStream;
};