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>
41 void QUENTIER_EXPORT QuentierInitializeLogging();
43 void QUENTIER_EXPORT QuentierAddLogEntry(
const QString & sourceFileName,
const int sourceFileLineNumber,
44 const QString & message,
const LogLevel::type logLevel);
46 LogLevel::type QUENTIER_EXPORT QuentierMinLogLevel();
48 void QUENTIER_EXPORT QuentierSetMinLogLevel(
const LogLevel::type logLevel);
50 void QUENTIER_EXPORT QuentierAddStdOutLogDestination();
52 bool QUENTIER_EXPORT QuentierIsLogLevelActive(
const LogLevel::type logLevel);
54 QString QUENTIER_EXPORT QuentierLogFilesDirPath();
58 #if QT_VERSION >= QT_VERSION_CHECK(5, 4, 0)
59 #define __QNLOG_QDEBUG_HELPER() \
63 #define __QNLOG_QDEBUG_HELPER() \
67 #define __QNLOG_BASE(message, level) \
68 if (quentier::QuentierIsLogLevelActive(quentier::LogLevel::level##Level)) { \
71 __QNLOG_QDEBUG_HELPER(); \
73 quentier::QuentierAddLogEntry(QStringLiteral(__FILE__), __LINE__, msg, quentier::LogLevel::level##Level); \
76 #define QNTRACE(message) \
77 __QNLOG_BASE(message, Trace)
79 #define QNDEBUG(message) \
80 __QNLOG_BASE(message, Debug)
82 #define QNINFO(message) \
83 __QNLOG_BASE(message, Info)
85 #define QNWARNING(message) \
86 __QNLOG_BASE(message, Warn)
88 #define QNERROR(message) \
89 __QNLOG_BASE(message, Error)
91 #define QUENTIER_SET_MIN_LOG_LEVEL(level) \
92 quentier::QuentierSetMinLogLevel(quentier::LogLevel::level##Level)
94 #define QUENTIER_INITIALIZE_LOGGING() \
95 quentier::QuentierInitializeLogging()
97 #define QUENTIER_ADD_STDOUT_LOG_DESTINATION() \
98 quentier::QuentierAddStdOutLogDestination()
100 #endif // LIB_QUENTIER_LOGGING_QUENTIER_LOGGER_H