From 0284754afbcb68c39a4ab6196b1174a586af44d6 Mon Sep 17 00:00:00 2001 From: Janne Kiiski Date: Wed, 24 Nov 2010 13:01:41 +0200 Subject: [PATCH] Logger added --- src/logger.h | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 src/logger.h diff --git a/src/logger.h b/src/logger.h new file mode 100644 index 0000000..c8f924b --- /dev/null +++ b/src/logger.h @@ -0,0 +1,60 @@ +#ifndef LOGGER_H +#define LOGGER_H + +#include +#include +#include +#include "common.h" + +class Logger +{ +public: + /** Logging level + * Exists as "LogLevel" entry in Situare.conf + * Valid values: + * QtDebugMsg -> 0 + * QtWarningMsg -> 1 + * QtCriticalMsg -> 2 + * QtFatalMsg -> 3 + * QtSystemMsg -> QtCriticalMsg -> 2 + * @see QtMsgType + * Default: QtSystemMsg + */ + static QtMsgType LOG_LEVEL; + +public: + Logger(QtMsgType level, const char* msg) : + level(level), + msg(msg) + { + static bool initialized = false; + if (!initialized) { + const QSettings settings(SETTINGS_ORGANIZATION_NAME, SETTINGS_APPLICATION_NAME); + LOG_LEVEL = static_cast(settings.value("LogLevel", (int)LOG_LEVEL).toInt()); + initialized = true; + } + if (LOG_LEVEL <= level) { + time.start(); + QDebug(QtDebugMsg) << msg << "enter"; + } + } + ~Logger() + { + if (LOG_LEVEL <= level) { + QDebug(level) << msg << "exit, elapsed:" << time.elapsed() << "ms"; + } + } + +private: + QTime time; + QtMsgType level; + const char* msg; +}; + +QtMsgType Logger::LOG_LEVEL = QtSystemMsg; + +/** @brief Log function time + */ +#define DEBUG_FUNCTION_TIME Logger function_time_logger(QtDebugMsg, __PRETTY_FUNCTION__) + +#endif // LOGGER_H -- 1.7.9.5