diff options
Diffstat (limited to 'src/Common/Logger.h')
-rw-r--r-- | src/Common/Logger.h | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/src/Common/Logger.h b/src/Common/Logger.h index 1fff654..d8f105a 100644 --- a/src/Common/Logger.h +++ b/src/Common/Logger.h @@ -21,17 +21,26 @@ #define MAD_COMMON_LOGGER_H_ #include "LoggerBase.h" +#include "Configurable.h" + #include <algorithm> -#include <list> -#include <string> #include <cstdarg> #include <ctime> +#include <list> +#include <memory> +#include <string> namespace Mad { namespace Common { class Logger : public LoggerBase { private: + class ConfigHelper : private Configurable { + protected: + virtual bool handleConfigEntry(const std::vector<std::vector<std::string> > &entry, bool handled); + }; + + static std::auto_ptr<ConfigHelper> configHelper; static std::list<Logger*> loggers; static void logfv(MessageCategory category, MessageLevel level, const char *format, va_list ap); @@ -40,6 +49,10 @@ class Logger : public LoggerBase { virtual void logMessage(MessageCategory category, MessageLevel level, time_t messageTimestamp, const std::string &message) = 0; public: + static void initConfigHelper() { + configHelper.reset(new ConfigHelper()); + } + static void log(MessageCategory category, MessageLevel level, const std::string &message); static void log(MessageCategory category, const std::string &message) { log(category, DEFAULT, message); |