 |
AntiMicroX
|
Go to the documentation of this file.
26 #include <QTextStream>
38 #define PRINT_STDOUT() StreamPrinter(stdout, __LINE__, __FILE__)
39 #define PRINT_STDERR() StreamPrinter(stderr, __LINE__, __FILE__)
41 #define DEBUG() LogHelper(Logger::LogLevel::LOG_DEBUG, __LINE__, __FILE__)
42 #define VERBOSE() LogHelper(Logger::LogLevel::LOG_VERBOSE, __LINE__, __FILE__)
43 #define INFO() LogHelper(Logger::LogLevel::LOG_INFO, __LINE__, __FILE__)
44 #define WARN() LogHelper(Logger::LogLevel::LOG_WARNING, __LINE__, __FILE__)
45 #define ERROR() LogHelper(Logger::LogLevel::LOG_ERROR, __LINE__, __FILE__)
76 static void loggerMessageHandler(QtMsgType type,
const QMessageLogContext &context,
const QString &msg);
96 if (raiseExceptionForNull &&
instance ==
nullptr)
98 throw std::runtime_error(
"There is no logger instance");
165 if (
log_level != Logger::LogLevel::LOG_NONE)
171 if (
log_level != Logger::LogLevel::LOG_NONE)
174 std::stringstream str;
208 m_message <<
"Printed stdout message📓: ";
209 }
else if (file == stderr)
211 m_message <<
"Printed stderr message📓: ";
#define VERBOSE()
Definition: logger.h:42
QThread * loggingThread
Definition: logger.h:117
StreamPrinter & operator<<(const QString &s)
Definition: logger.h:233
bool is_message_sent
Definition: logger.h:136
QFile outputFile
Definition: logger.h:111
@ LOG_MAX
Definition: logger.h:71
Logger(QTextStream *stream, LogLevel output_lvl=LOG_INFO, QObject *parent=nullptr)
Outputs log messages to a given text stream. Client code should determine whether it points to a cons...
Definition: logger.cpp:43
static Logger * getInstance(bool raiseExceptionForNull=true)
Get the Instance of logger.
Definition: logger.h:94
uint m_lineno
Definition: logger.h:196
static void setLogLevel(LogLevel level)
Set the highest logging level. Determines which messages are output to the output stream.
Definition: logger.cpp:76
static void setCurrentStream(QTextStream *stream)
Definition: logger.cpp:96
@ LOG_DEBUG
Definition: logger.h:70
static Logger * instance
Definition: logger.h:109
LogHelper(const Logger::LogLevel level, const uint lineno, const QString &filename, const QString &message="")
Definition: logger.h:139
QMutex logMutex
Definition: logger.h:116
static QTextStream * getCurrentStream()
Definition: logger.cpp:107
LogHelper & operator<<(const QString &s)
Definition: logger.h:163
static bool isDebugEnabled()
Definition: logger.cpp:260
~StreamPrinter()
Definition: logger.h:218
QString m_filename
Definition: logger.h:197
void sendMessage()
Definition: logger.h:157
static Logger * createInstance(QTextStream *stream=nullptr, LogLevel outputLevel=LOG_INFO, QObject *parent=nullptr)
Create instance of logger, if there is any other instance it will de deleted.
Definition: logger.cpp:250
LogLevel
Definition: logger.h:63
LogHelper & operator<<(Message ch)
Definition: logger.h:169
void logMessage(const QString &message, const Logger::LogLevel level, const uint lineno, const QString &filename)
static QString getCurrentLogFile()
Definition: logger.cpp:269
bool isWritingToFile()
Definition: logger.cpp:199
@ LOG_VERBOSE
Definition: logger.h:69
Logger::LogLevel level
Definition: logger.h:133
QTextStream * outputStream
Definition: logger.h:113
QString message
Definition: logger.h:132
StreamPrinter & operator<<(Message ch)
Definition: logger.h:226
@ LOG_WARNING
Definition: logger.h:67
~LogHelper()
Definition: logger.h:151
LogLevel getCurrentLogLevel()
Get the current output level associated with the logger.
Definition: logger.cpp:90
Simple adapter for QTextStream additionally logging printed values Logs are printed when StreamPrinte...
Definition: logger.h:190
void logMessage(const QString &message, const Logger::LogLevel level, const uint lineno, const QString &filename)
Write an individual message to the text stream.
Definition: logger.cpp:140
QTextStream m_stream
Definition: logger.h:194
std::stringstream m_message
Definition: logger.h:195
~Logger()
Close output stream and set instance to 0.
Definition: logger.cpp:60
QTextStream outFileStream
Definition: logger.h:112
@ LOG_ERROR
Definition: logger.h:66
simple helper class used for constructing log message and sending it to Logger
Definition: logger.h:128
StreamPrinter(FILE *file, uint lineno=0, QString filename="")
Definition: logger.h:200
LogLevel outputLevel
Definition: logger.h:115
static void loggerMessageHandler(QtMsgType type, const QMessageLogContext &context, const QString &msg)
log message handling function
Definition: logger.cpp:210
@ LOG_INFO
Definition: logger.h:68
QString filename
Definition: logger.h:135
Custom singleton class used for logging across application.
Definition: logger.h:57
void closeLogger(bool closeStream=true)
Flushes output stream and closes stream if requested.
Definition: logger.cpp:118
@ LOG_NONE
Definition: logger.h:65
uint lineno
Definition: logger.h:134
Logger::LogLevel log_level
Definition: logger.h:137
static void setCurrentLogFile(QString filename)
Definition: logger.cpp:172