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;
Very simple but rather powerful component which may be used for logging your application activities...
Definition: Logger.h:72
Trace level. Can be used for mostly unneeded records used for internal code tracing.
Definition: Logger.h:84
Warning. May be used to log some non-fatal warnings detected by your application. ...
Definition: Logger.h:87
The AbstractAppender class provides an abstract base class for writing a log entries.
Definition: AbstractAppender.h:25
LogLevel
Describes the possible severity levels of the log records.
Definition: Logger.h:82
Info level. Can be used for informational records, which may be interesting for not only developers...
Definition: Logger.h:86
Debug level. Useful for non-necessary records used for the debugging of the software.
Definition: Logger.h:85
Error. May be used for a big problems making your application work wrong but not crashing.
Definition: Logger.h:88
TimingMode
Sets the timing display mode for the LOG_TRACE_TIME, LOG_DEBUG_TIME and LOG_INFO_TIME macros...
Definition: Logger.h:93
Show time in seconds, if it exceeds 10s (default)
Definition: Logger.h:95