diff options
Diffstat (limited to 'src/Common/LogManager.h')
-rw-r--r-- | src/Common/LogManager.h | 25 |
1 files changed, 13 insertions, 12 deletions
diff --git a/src/Common/LogManager.h b/src/Common/LogManager.h index 7c0f1e0..5fc3824 100644 --- a/src/Common/LogManager.h +++ b/src/Common/LogManager.h @@ -23,8 +23,7 @@ #include "Configurable.h" #include "Logger.h" #include "RemoteLogger.h" -#include "SingletonPtr.h" -#include "SharedPtr.h" +#include "Backends/ConsoleLogger.h" #include <memory> #include <queue> @@ -53,42 +52,44 @@ class LogManager : public Configurable { std::string source; }; - static SingletonPtr<LogManager> logManager; + static LogManager logManager; - std::set<SharedPtr<Logger> > loggers; - std::set<SharedPtr<RemoteLogger> > remoteLoggers; + Backends::ConsoleLogger consoleLogger; + + std::set<Logger*> loggers; + std::set<RemoteLogger*> remoteLoggers; std::auto_ptr<std::queue<Message> > messageQueue; std::auto_ptr<std::queue<RemoteMessage> > remoteMessageQueue; + LogManager() : messageQueue(new std::queue<Message>()), remoteMessageQueue(new std::queue<RemoteMessage>()) {} + protected: virtual bool handleConfigEntry(const ConfigEntry &entry, bool handled); virtual void configFinished(); public: - LogManager() : messageQueue(new std::queue<Message>()), remoteMessageQueue(new std::queue<RemoteMessage>()) {} - void log(MessageCategory category, MessageLevel level, time_t timestamp, const std::string &message); void log(MessageCategory category, MessageLevel level, time_t timestamp, const std::string &message, const std::string &source); - void registerLogger(SharedPtr<Logger> logger) { + void registerLogger(Logger *logger) { loggers.insert(logger); } - void unregisterLogger(SharedPtr<Logger> logger) { + void unregisterLogger(Logger *logger) { loggers.erase(logger); } - void registerLogger(SharedPtr<RemoteLogger> logger) { + void registerLogger(RemoteLogger *logger) { remoteLoggers.insert(logger); } - void unregisterLogger(SharedPtr<RemoteLogger> logger) { + void unregisterLogger(RemoteLogger *logger) { remoteLoggers.erase(logger); } static LogManager *get() { - return logManager.get(); + return &logManager; } }; |