diff options
Diffstat (limited to 'src/Common/Logger.h')
-rw-r--r-- | src/Common/Logger.h | 50 |
1 files changed, 6 insertions, 44 deletions
diff --git a/src/Common/Logger.h b/src/Common/Logger.h index 593fd7a..1fff654 100644 --- a/src/Common/Logger.h +++ b/src/Common/Logger.h @@ -20,35 +20,24 @@ #ifndef MAD_COMMON_LOGGER_H_ #define MAD_COMMON_LOGGER_H_ +#include "LoggerBase.h" #include <algorithm> -#include <cstdarg> #include <list> #include <string> -#include <bitset> +#include <cstdarg> +#include <ctime> namespace Mad { namespace Common { -class Logger { - public: - enum MessageLevel { - CRITICAL, ERROR, WARNING, DEFAULT, VERBOSE, DEBUG - }; - - enum MessageCategory { - SYSTEM, NETWORK, DAEMON, USER, DISK, PROGRAM, GENERAL - }; - +class Logger : public LoggerBase { private: static std::list<Logger*> loggers; - std::bitset<16> categories; - MessageLevel level; static void logfv(MessageCategory category, MessageLevel level, const char *format, va_list ap); protected: - Logger() : level(DEFAULT) {setAllCategories();} - virtual void logMessage(MessageCategory category, MessageLevel level, const std::string &message) = 0; + virtual void logMessage(MessageCategory category, MessageLevel level, time_t messageTimestamp, const std::string &message) = 0; public: static void log(MessageCategory category, MessageLevel level, const std::string &message); @@ -77,34 +66,7 @@ class Logger { loggers.erase(it); } - 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) { - return categories.test(category); - } - - MessageLevel getLevel() const { - return level; - } - - void setLevel(MessageLevel newLevel) { - level = newLevel; - } - + Logger() {} virtual ~Logger() {} }; |