19 #ifndef LIB_QUENTIER_LOGGING_QUENTIER_LOGGER_H
20 #define LIB_QUENTIER_LOGGING_QUENTIER_LOGGER_H
22 #include <quentier/utility/Linkage.h>
23 #include <quentier/utility/Macros.h>
39 QUENTIER_EXPORT QDebug & operator<<(QDebug & dbg,
const LogLevel logLevel);
41 void QUENTIER_EXPORT QuentierInitializeLogging();
43 void QUENTIER_EXPORT QuentierAddLogEntry(
44 const QString & sourceFileName,
45 const int sourceFileLineNumber,
46 const QString & message,
47 const LogLevel logLevel);
49 LogLevel QUENTIER_EXPORT QuentierMinLogLevel();
51 void QUENTIER_EXPORT QuentierSetMinLogLevel(
const LogLevel logLevel);
53 void QUENTIER_EXPORT QuentierAddStdOutLogDestination();
55 bool QUENTIER_EXPORT QuentierIsLogLevelActive(
const LogLevel logLevel);
57 QString QUENTIER_EXPORT QuentierLogFilesDirPath();
59 void QUENTIER_EXPORT QuentierRestartLogging();
63 #define __QNLOG_QDEBUG_HELPER() \
68 #define __QNLOG_BASE(message, level) \
69 if (quentier::QuentierIsLogLevelActive(quentier::LogLevel::level)) \
73 __QNLOG_QDEBUG_HELPER(); \
75 quentier::QuentierAddLogEntry( \
76 QStringLiteral(__FILE__), \
78 quentier::LogLevel::level); \
82 #define QNTRACE(message) \
83 __QNLOG_BASE(message, Trace) \
86 #define QNDEBUG(message) \
87 __QNLOG_BASE(message, Debug) \
90 #define QNINFO(message) \
91 __QNLOG_BASE(message, Info) \
94 #define QNWARNING(message) \
95 __QNLOG_BASE(message, Warning) \
98 #define QNERROR(message) \
99 __QNLOG_BASE(message, Error) \
102 #define QUENTIER_SET_MIN_LOG_LEVEL(level) \
103 quentier::QuentierSetMinLogLevel(quentier::LogLevel::level) \
106 #define QUENTIER_INITIALIZE_LOGGING() \
107 quentier::QuentierInitializeLogging() \
110 #define QUENTIER_ADD_STDOUT_LOG_DESTINATION() \
111 quentier::QuentierAddStdOutLogDestination() \
114 #define QNLOG_FILE_LINENUMBER_DELIMITER ":"