summaryrefslogtreecommitdiffstats
path: root/src/Common/Logger.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/Common/Logger.h')
-rw-r--r--src/Common/Logger.h17
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);