From 7890312d0a850ffc5be20d078d7e8f2d148dca3e Mon Sep 17 00:00:00 2001 From: Matthias Schiffer Date: Mon, 31 Aug 2009 21:21:09 +0200 Subject: =?UTF-8?q?LogManager=20=C3=BCberarbeitet?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Core/Logger.h | 55 ++++++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 48 insertions(+), 7 deletions(-) (limited to 'src/Core/Logger.h') diff --git a/src/Core/Logger.h b/src/Core/Logger.h index 53ec665..24582bc 100644 --- a/src/Core/Logger.h +++ b/src/Core/Logger.h @@ -20,10 +20,7 @@ #ifndef MAD_CORE_LOGGER_H_ #define MAD_CORE_LOGGER_H_ -#include "export.h" - -#include "LoggerBase.h" - +#include #include #include @@ -32,12 +29,56 @@ namespace Core { class LogManager; -class Logger : public LoggerBase { - protected: +class Logger { + public: friend class LogManager; - virtual void logMessage(MessageCategory category, MessageLevel level, boost::posix_time::ptime timestamp, const std::string &message) = 0; + enum MessageLevel { + LOG_CRITICAL, LOG_ERROR, LOG_WARNING, LOG_DEFAULT, LOG_VERBOSE, LOG_DEBUG + }; + + enum MessageCategory { + LOG_SYSTEM, LOG_NETWORK, LOG_DAEMON, LOG_USER, LOG_DISK, LOG_PROGRAM, LOG_GENERAL + }; + + private: + std::bitset<16> categories; + MessageLevel level; + + protected: + Logger() : level(LOG_DEFAULT) {setAllCategories();} + virtual ~Logger() {} + + virtual void logMessage(MessageCategory category, MessageLevel level, boost::posix_time::ptime timestamp, const std::string &message, const std::string &source) = 0; + + public: + void setCategory(MessageCategory newCategory) { + categories.set(newCategory); + } + + void unsetCategory(MessageCategory oldCategory) { + categories.reset(oldCategory); + } + + void setAllCategories() { + categories.set(); + } + + void unsetAllCategories() { + categories.reset(); + } + + bool isCategorySet(MessageCategory category) const { + return categories.test(category); + } + + MessageLevel getLevel() const { + return level; + } + void setLevel(MessageLevel newLevel) { + level = newLevel; + } }; } -- cgit v1.2.3