23 #include "CuteLogger_global.h"
28 CUTELOGGERSHARED_EXPORT
Logger* cuteLoggerInstance();
29 #define cuteLogger cuteLoggerInstance()
32 #define LOG_TRACE CuteMessageLogger(cuteLoggerInstance(), Logger::Trace, __FILE__, __LINE__, Q_FUNC_INFO).write
33 #define LOG_DEBUG CuteMessageLogger(cuteLoggerInstance(), Logger::Debug, __FILE__, __LINE__, Q_FUNC_INFO).write
34 #define LOG_INFO CuteMessageLogger(cuteLoggerInstance(), Logger::Info, __FILE__, __LINE__, Q_FUNC_INFO).write
35 #define LOG_WARNING CuteMessageLogger(cuteLoggerInstance(), Logger::Warning, __FILE__, __LINE__, Q_FUNC_INFO).write
36 #define LOG_ERROR CuteMessageLogger(cuteLoggerInstance(), Logger::Error, __FILE__, __LINE__, Q_FUNC_INFO).write
37 #define LOG_FATAL CuteMessageLogger(cuteLoggerInstance(), Logger::Fatal, __FILE__, __LINE__, Q_FUNC_INFO).write
39 #define LOG_CTRACE(category) CuteMessageLogger(cuteLoggerInstance(), Logger::Trace, __FILE__, __LINE__, Q_FUNC_INFO, category).write()
40 #define LOG_CDEBUG(category) CuteMessageLogger(cuteLoggerInstance(), Logger::Debug, __FILE__, __LINE__, Q_FUNC_INFO, category).write()
41 #define LOG_CINFO(category) CuteMessageLogger(cuteLoggerInstance(), Logger::Info, __FILE__, __LINE__, Q_FUNC_INFO, category).write()
42 #define LOG_CWARNING(category) CuteMessageLogger(cuteLoggerInstance(), Logger::Warning, __FILE__, __LINE__, Q_FUNC_INFO, category).write()
43 #define LOG_CERROR(category) CuteMessageLogger(cuteLoggerInstance(), Logger::Error, __FILE__, __LINE__, Q_FUNC_INFO, category).write()
44 #define LOG_CFATAL(category) CuteMessageLogger(cuteLoggerInstance(), Logger::Fatal, __FILE__, __LINE__, Q_FUNC_INFO, category).write()
46 #define LOG_TRACE_TIME LoggerTimingHelper loggerTimingHelper(cuteLoggerInstance(), Logger::Trace, __FILE__, __LINE__, Q_FUNC_INFO); loggerTimingHelper.start
47 #define LOG_DEBUG_TIME LoggerTimingHelper loggerTimingHelper(cuteLoggerInstance(), Logger::Debug, __FILE__, __LINE__, Q_FUNC_INFO); loggerTimingHelper.start
48 #define LOG_INFO_TIME LoggerTimingHelper loggerTimingHelper(cuteLoggerInstance(), Logger::Info, __FILE__, __LINE__, Q_FUNC_INFO); loggerTimingHelper.start
50 #define LOG_ASSERT(cond) ((!(cond)) ? cuteLoggerInstance()->writeAssert(__FILE__, __LINE__, Q_FUNC_INFO, #cond) : qt_noop())
51 #define LOG_ASSERT_X(cond, msg) ((!(cond)) ? cuteLoggerInstance()->writeAssert(__FILE__, __LINE__, Q_FUNC_INFO, msg) : qt_noop())
53 #define LOG_CATEGORY(category) \
55 Logger* cuteLoggerInstance()\
57 static Logger customCuteLoggerInstance(category);\
58 return &customCuteLoggerInstance;\
61 #define LOG_GLOBAL_CATEGORY(category) \
63 Logger* cuteLoggerInstance()\
65 static Logger customCuteLoggerInstance(category);\
66 customCuteLoggerInstance.logToGlobalInstance(category, true);\
67 return &customCuteLoggerInstance;\
78 Logger(
const QString& defaultCategory);
99 static QString levelToString(LogLevel logLevel);
100 static LogLevel levelFromString(
const QString& s);
102 static Logger* globalInstance();
105 void registerCategoryAppender(
const QString& category,
AbstractAppender* appender);
109 void logToGlobalInstance(
const QString& category,
bool logToGlobal =
false);
111 void setDefaultCategory(
const QString& category);
112 QString defaultCategory()
const;
114 void write(
const QDateTime& timeStamp, LogLevel logLevel,
const char* file,
int line,
const char*
function,
const char* category,
115 const QString& message);
116 void write(LogLevel logLevel,
const char* file,
int line,
const char*
function,
const char* category,
const QString& message);
117 QDebug write(LogLevel logLevel,
const char* file,
int line,
const char*
function,
const char* category);
119 void writeAssert(
const char* file,
int line,
const char*
function,
const char* condition);
122 void write(
const QDateTime& timeStamp, LogLevel logLevel,
const char* file,
int line,
const char*
function,
const char* category,
123 const QString& message,
bool fromLocalInstance);
125 LoggerPrivate* d_ptr;
129 class CUTELOGGERSHARED_EXPORT CuteMessageLogger
131 Q_DISABLE_COPY(CuteMessageLogger)
134 Q_DECL_CONSTEXPR CuteMessageLogger(
Logger* l,
Logger::LogLevel level,
const char* file,
int line,
const char*
function)
139 m_function(function),
143 Q_DECL_CONSTEXPR CuteMessageLogger(
Logger* l,
Logger::LogLevel level,
const char* file,
int line,
const char*
function,
const char* category)
148 m_function(function),
152 void write(
const char* msg, ...) const
153 #if defined(Q_CC_GNU) && !defined(__INSURE__)
154 # if defined(Q_CC_MINGW) && !defined(Q_CC_CLANG)
155 __attribute__ ((format (gnu_printf, 2, 3)))
157 __attribute__ ((format (printf, 2, 3)))
162 void write(
const QString& msg)
const;
164 QDebug write()
const;
171 const char* m_function;
172 const char* m_category;
176 class CUTELOGGERSHARED_EXPORT LoggerTimingHelper
178 Q_DISABLE_COPY(LoggerTimingHelper)
182 const char*
function)
184 m_logLevel(logLevel),
185 m_timingMode(
Logger::TimingAuto),
191 void start(
const char* msg, ...)
192 #if defined(Q_CC_GNU) && !defined(__INSURE__)
193 # if defined(Q_CC_MINGW) && !defined(Q_CC_CLANG)
194 __attribute__ ((format (gnu_printf, 2, 3)))
196 __attribute__ ((format (printf, 2, 3)))
201 void start(
const QString& msg = QString());
204 ~LoggerTimingHelper();
213 const char* m_function;