diff options
author | Johannes Thorn <dante@g4t3.de> | 2008-09-22 13:03:41 +0200 |
---|---|---|
committer | Johannes Thorn <dante@g4t3.de> | 2008-09-22 13:03:41 +0200 |
commit | 14ff48a0e6d23dce53810c0292816950ba7b9f71 (patch) | |
tree | b899900e33f4635096b427d504745f5bab9c74b9 /src/Common/Logger.h | |
parent | fe6d06a7df225e79756229131f128981bbb83b40 (diff) | |
download | mad-14ff48a0e6d23dce53810c0292816950ba7b9f71.tar mad-14ff48a0e6d23dce53810c0292816950ba7b9f71.zip |
Kategorien f?r Loggen ?berarbeitet
Diffstat (limited to 'src/Common/Logger.h')
-rw-r--r-- | src/Common/Logger.h | 38 |
1 files changed, 27 insertions, 11 deletions
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 <algorithm> #include <cstdarg> #include <list> #include <string> +#include <set> 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<Logger*> loggers; - MessageCategory category; + std::set<MessageCategory> 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 { |