21#include <quentier/utility/Linkage.h>
24#include <QRegularExpression>
43QUENTIER_EXPORT QDebug & operator<<(QDebug & dbg, LogLevel logLevel);
45QUENTIER_EXPORT QTextStream & operator<<(QTextStream & strm, LogLevel logLevel);
54void QUENTIER_EXPORT QuentierInitializeLogging();
59void QUENTIER_EXPORT QuentierAddLogEntry(
60 const QString & sourceFileName,
int sourceFileLineNumber,
61 const QString & component,
const QString & message, LogLevel logLevel);
68LogLevel QUENTIER_EXPORT QuentierMinLogLevel();
73void QUENTIER_EXPORT QuentierSetMinLogLevel(LogLevel logLevel);
79void QUENTIER_EXPORT QuentierAddStdOutLogDestination();
85[[nodiscard]]
bool QUENTIER_EXPORT QuentierIsLogLevelActive(LogLevel logLevel);
90[[nodiscard]] QString QUENTIER_EXPORT QuentierLogFilesDirPath();
95void QUENTIER_EXPORT QuentierRestartLogging();
100[[nodiscard]] QRegularExpression QUENTIER_EXPORT QuentierLogComponentFilter();
106 QuentierSetLogComponentFilter(
const QRegularExpression & filter);
110#define QNLOG_PRIVATE_BASE(component, message, level) \
111 if (quentier::QuentierIsLogLevelActive(quentier::LogLevel::level)) { \
117 quentier::QuentierAddLogEntry( \
118 QStringLiteral(__FILE__), __LINE__, QString::fromUtf8(component), \
119 msg, quentier::LogLevel::level); \
123#define QNTRACE(component, message) \
124 QNLOG_PRIVATE_BASE(component, message, Trace) \
127#define QNDEBUG(component, message) \
128 QNLOG_PRIVATE_BASE(component, message, Debug) \
131#define QNINFO(component, message) \
132 QNLOG_PRIVATE_BASE(component, message, Info) \
135#define QNWARNING(component, message) \
136 QNLOG_PRIVATE_BASE(component, message, Warning) \
139#define QNERROR(component, message) \
140 QNLOG_PRIVATE_BASE(component, message, Error) \
143#define QUENTIER_SET_MIN_LOG_LEVEL(level) \
144 quentier::QuentierSetMinLogLevel(quentier::LogLevel::level)
147#define QUENTIER_INITIALIZE_LOGGING() quentier::QuentierInitializeLogging()
151#define QUENTIER_ADD_STDOUT_LOG_DESTINATION() \
152 quentier::QuentierAddStdOutLogDestination() \
156#define QNLOG_FILE_LINENUMBER_DELIMITER ":"