Cockatrice 2025-11-30-Development-2.11.0-beta.38
A cross-platform virtual tabletop for multiplayer card games
Loading...
Searching...
No Matches
logger.h
Go to the documentation of this file.
1
6
7#ifndef LOGGER_H
8#define LOGGER_H
9
10#include <QFile>
11#include <QMutex>
12#include <QString>
13#include <QTextStream>
14#include <QVector>
15
16#if defined(Q_PROCESSOR_X86_32)
17#define BUILD_ARCHITECTURE "32-bit"
18#elif defined(Q_PROCESSOR_X86_64)
19#define BUILD_ARCHITECTURE "64-bit"
20#elif defined(Q_PROCESSOR_ARM)
21#define BUILD_ARCHITECTURE "ARM"
22#else
23#define BUILD_ARCHITECTURE "unknown"
24#endif
25
26class Logger : public QObject
27{
28 Q_OBJECT
29public:
31 {
32 static Logger instance;
33 return instance;
34 }
35
36 void logToFile(bool enabled);
37 void log(QtMsgType type, const QMessageLogContext &ctx, const QString &message);
38 QString getClientVersion();
40 QString getSystemArchitecture();
41 QString getSystemLocale();
42 QString getClientInstallInfo();
43 QList<QString> getLogBuffer()
44 {
45 return logBuffer;
46 }
47
48private:
49 Logger();
50 ~Logger() override;
51 // Singleton - Don't implement copy constructor and assign operator
52 Logger(Logger const &);
53 void operator=(Logger const &);
54
56 QTextStream fileStream;
58 QList<QString> logBuffer;
59 QMutex mutex;
60
61protected:
62 void openLogfileSession();
64
65protected slots:
66 void internalLog(const QString &message);
67
68signals:
69 void logEntryAdded(const QString &message);
70};
71
72#endif
QFile fileHandle
Definition logger.h:57
Logger(Logger const &)
void internalLog(const QString &message)
Definition logger.cpp:93
QString getClientInstallInfo()
Definition logger.cpp:140
QString getClientVersion()
Definition logger.cpp:43
QString getClientOperatingSystem()
Definition logger.cpp:129
static Logger & getInstance()
Definition logger.h:30
bool logToFileEnabled
Definition logger.h:55
QString getSystemArchitecture()
Definition logger.cpp:114
QMutex mutex
Definition logger.h:59
void logToFile(bool enabled)
Definition logger.cpp:34
void operator=(Logger const &)
QList< QString > logBuffer
Definition logger.h:58
void logEntryAdded(const QString &message)
Logger()
Definition logger.cpp:15
void openLogfileSession()
Definition logger.cpp:48
QTextStream fileStream
Definition logger.h:56
void log(QtMsgType type, const QMessageLogContext &ctx, const QString &message)
Definition logger.cpp:88
QList< QString > getLogBuffer()
Definition logger.h:43
QString getSystemLocale()
Definition logger.cpp:134
void closeLogfileSession()
Definition logger.cpp:74
~Logger() override
Definition logger.cpp:28