8#ifndef QEVERCLOUD_LOG_H
9#define QEVERCLOUD_LOG_H
35 QTextStream & out,
const LogLevel level);
49 const LogLevel level,
const char * component,
const char * fileName,
50 const quint32 lineNumber,
const qint64 timestamp,
51 const QString & message) = 0;
72#define __QEVERCLOUD_LOG_BASE(component, level, message) \
74 auto __qevercloudLogger = ::qevercloud::logger(); \
75 if (__qevercloudLogger->shouldLog(level, component)) \
82 __qevercloudLogger->log( \
87 QDateTime::currentMSecsSinceEpoch(), \
93#define QEC_TRACE(component, message) \
94 __QEVERCLOUD_LOG_BASE(component, LogLevel::Trace, message) \
97#define QEC_DEBUG(component, message) \
98 __QEVERCLOUD_LOG_BASE(component, LogLevel::Debug, message) \
101#define QEC_INFO(component, message) \
102 __QEVERCLOUD_LOG_BASE(component, LogLevel::Info, message) \
105#define QEC_WARNING(component, message) \
106 __QEVERCLOUD_LOG_BASE(component, LogLevel::Warn, message) \
109#define QEC_ERROR(component, message) \
110 __QEVERCLOUD_LOG_BASE(component, LogLevel::Error, message) \
#define QEVERCLOUD_EXPORT
Definition Export.h:19
virtual void log(const LogLevel level, const char *component, const char *fileName, const quint32 lineNumber, const qint64 timestamp, const QString &message)=0
virtual bool shouldLog(const LogLevel level, const char *component) const =0
virtual LogLevel level() const =0
virtual void setLevel(const LogLevel level)=0
Definition AsyncResult.h:21
QEVERCLOUD_EXPORT QTextStream & operator<<(QTextStream &out, const EDAMErrorCode value)
QEVERCLOUD_EXPORT ILoggerPtr nullLogger()
QEVERCLOUD_EXPORT void setLogger(ILoggerPtr logger)
LogLevel
Definition Log.h:26
@ Info
Definition Log.h:29
@ Warn
Definition Log.h:30
@ Error
Definition Log.h:31
@ Debug
Definition Log.h:28
@ Trace
Definition Log.h:27
QEVERCLOUD_EXPORT ILoggerPtr logger()
QEVERCLOUD_EXPORT ILoggerPtr newStdErrLogger(LogLevel level=LogLevel::Warn)
std::shared_ptr< ILogger > ILoggerPtr
Definition Log.h:58