diff options
Diffstat (limited to 'src/Common/LogManager.cpp')
-rw-r--r-- | src/Common/LogManager.cpp | 35 |
1 files changed, 11 insertions, 24 deletions
diff --git a/src/Common/LogManager.cpp b/src/Common/LogManager.cpp index 5e902fa..5182a97 100644 --- a/src/Common/LogManager.cpp +++ b/src/Common/LogManager.cpp @@ -25,7 +25,7 @@ namespace Mad { namespace Common { -SingletonPtr<LogManager> LogManager::logManager; +LogManager LogManager::logManager; bool LogManager::handleConfigEntry(const ConfigEntry &entry, bool handled) { @@ -35,7 +35,7 @@ bool LogManager::handleConfigEntry(const ConfigEntry &entry, bool handled) { if(entry[0].getKey().matches("Logger")) { if(entry[0][0].matches("Console")) { if(entry[1].empty()) { - registerLogger(SharedPtr<Logger>(new Backends::ConsoleLogger())); + registerLogger(static_cast<Logger*>(&consoleLogger)); return true; } } @@ -49,19 +49,10 @@ bool LogManager::handleConfigEntry(const ConfigEntry &entry, bool handled) { } void LogManager::configFinished() { - SharedPtr<Backends::ConsoleLogger> consoleLogger; + if(loggers.empty()) + registerLogger(static_cast<Logger*>(&consoleLogger)); - if(loggers.empty() || remoteLoggers.empty()) { - consoleLogger = SharedPtr<Backends::ConsoleLogger>(new Backends::ConsoleLogger()); - - if(loggers.empty()) - registerLogger(consoleLogger.cast<Logger>()); - - if(remoteLoggers.empty()) - registerLogger(consoleLogger.cast<RemoteLogger>()); - } - - std::auto_ptr<std::queue<Message> > queue = messageQueue; + std::auto_ptr<std::queue<Message> > queue = messageQueue; while(!queue->empty()) { const Message &message = queue->front(); @@ -85,11 +76,9 @@ void LogManager::log(MessageCategory category, MessageLevel level, time_t timest return; } - for(std::set<SharedPtr<Logger> >::iterator it = loggers.begin(); it != loggers.end(); ++it) { - SharedPtr<Logger> logger = *it; - - if(logger->getLevel() >= level && logger->isCategorySet(category)) - logger->logMessage(category, level, timestamp, message); + for(std::set<Logger*>::iterator logger = loggers.begin(); logger != loggers.end(); ++logger) { + if((*logger)->getLevel() >= level && (*logger)->isCategorySet(category)) + (*logger)->logMessage(category, level, timestamp, message); } } @@ -100,11 +89,9 @@ void LogManager::log(MessageCategory category, MessageLevel level, time_t timest return; } - for(std::set<SharedPtr<RemoteLogger> >::iterator it = remoteLoggers.begin(); it != remoteLoggers.end(); ++it) { - SharedPtr<RemoteLogger> logger = *it; - - if(logger->getLevel() >= level && logger->isCategorySet(category)) - logger->logMessage(category, level, timestamp, message, source); + for(std::set<RemoteLogger*>::iterator logger = remoteLoggers.begin(); logger != remoteLoggers.end(); ++logger) { + if((*logger)->getLevel() >= level && (*logger)->isCategorySet(category)) + (*logger)->logMessage(category, level, timestamp, message, source); } } |