From 14ff48a0e6d23dce53810c0292816950ba7b9f71 Mon Sep 17 00:00:00 2001 From: Johannes Thorn Date: Mon, 22 Sep 2008 13:03:41 +0200 Subject: Kategorien f?r Loggen ?berarbeitet --- src/Common/Logger.h | 38 +++++++++++++++++++++++++++----------- 1 file changed, 27 insertions(+), 11 deletions(-) (limited to 'src/Common/Logger.h') diff --git a/src/Common/Logger.h b/src/Common/Logger.h index ba14347..360b746 100644 --- a/src/Common/Logger.h +++ b/src/Common/Logger.h @@ -20,10 +20,13 @@ #ifndef MAD_COMMON_LOGGER_H_ #define MAD_COMMON_LOGGER_H_ +#define CATEGORYCOUNT 9 //Please insert the number of categories + #include #include #include #include +#include namespace Mad { namespace Common { @@ -34,28 +37,27 @@ class Logger { CRITICAL, ERROR, WARNING, DEFAULT, VERBOSE, DEBUG }; enum MessageCategory { - ALL, SYSTEM, NETWORK, DAEMON, USER, DISK, PROGRAM, GENERAL + SYSTEM, NETWORK, DAEMON, USER, DISK, PROGRAM, GENERAL }; private: static std::list loggers; - MessageCategory category; + std::set categories; MessageLevel level; static void logfv(MessageCategory category, MessageLevel level, const char *format, va_list ap); protected: - Logger() : level(DEFAULT), category(ALL) {} - + Logger() : level(DEFAULT) {} virtual void logMessage(MessageCategory category, MessageLevel level, const std::string &message) = 0; public: static void log(MessageCategory category, MessageLevel level, const std::string &message); static void log(MessageLevel level, const std::string &message) { - log(ALL, level, message); + log(GENERAL, level, message); } static void log(const std::string &message) { - log(ALL, DEFAULT, message); + log(GENERAL, DEFAULT, message); } static void logf(MessageCategory category, MessageLevel level, const char *format, ...); @@ -72,12 +74,26 @@ class Logger { loggers.erase(it); } - MessageCategory getCategory() const { - return category; - } - void setCategory(MessageCategory newCategory) { - category = newCategory; + categories.insert(newCategory); + } + void unsetCategory(MessageCategory oldCategory) { + categories.erase(oldCategory); + } + void setAllCategories() { + //each loop represents one category + for(int category = 1; category <= CATEGORYCOUNT; category++) { + categories.insert((MessageCategory)category); + } + } + void unsetAllCategories() { + categories.clear(); + } + bool isCategorySet(MessageCategory category) { + if(categories.find(category) == categories.end()) + return false; + else + return true; } MessageLevel getLevel() const { -- cgit v1.2.3