From 2b83ae7c71dc706fb4fd7b4efc4a8ffee8dfe522 Mon Sep 17 00:00:00 2001 From: Matthias Schiffer Date: Mon, 27 Oct 2008 22:41:06 +0100 Subject: Neues Initialisierung-Framework hinzugef?gt --- src/Common/Logger.cpp | 62 +++------------------------------------------------ 1 file changed, 3 insertions(+), 59 deletions(-) (limited to 'src/Common/Logger.cpp') diff --git a/src/Common/Logger.cpp b/src/Common/Logger.cpp index 51a320f..8586fa9 100644 --- a/src/Common/Logger.cpp +++ b/src/Common/Logger.cpp @@ -18,60 +18,13 @@ */ #include "Logger.h" -#include "ConfigEntry.h" -#include "ConfigManager.h" -#include "Backends/ConsoleLogger.h" -#include "Backends/FileLogger.h" +#include "LogManager.h" #include namespace Mad { namespace Common { -std::auto_ptr Logger::configHelper; -std::set Logger::loggers; -std::auto_ptr > Logger::messageQueue(new std::queue); - -bool Logger::ConfigHelper::handleConfigEntry(const ConfigEntry &entry, bool handled) { - if(handled) - return false; - - if(entry[0].getKey().matches("Logger")) { - if(entry[0][0].matches("Console")) { - if(entry[1].empty()) { - loggers.insert(new Backends::ConsoleLogger()); - return true; - } - } - else if(entry[1].empty()) { - logf(WARNING, "Unknown logger '%s'.", entry[0][0].c_str()); - return true; - } - } - - return false; -} - -void Logger::ConfigHelper::configFinished() { - std::auto_ptr > queue = messageQueue; - - if(loggers.empty()) - loggers.insert(new Backends::ConsoleLogger()); - - while(!queue->empty()) { - const Message &message = queue->front(); - log(message.category, message.level, message.timestamp, message.message); - queue->pop(); - } -} - -Logger::ConfigHelper::~ConfigHelper() { - // TODO delete all those loggers... - - //while(!loggers.empty()) - // delete (*loggers.begin()); -} - void Logger::logfv(MessageCategory category, MessageLevel level, const char *format, va_list ap) { int size = 100; char *buf = (char*)std::malloc(size); @@ -100,17 +53,8 @@ void Logger::logfv(MessageCategory category, MessageLevel level, const char *for } -void Logger::log(MessageCategory category, MessageLevel level, time_t timestamp, const std::string &message) { - if(messageQueue.get()) { // Queue message if loggers aren't configured yet - Message m = {category, level, timestamp, message}; - messageQueue->push(m); - return; - } - - for(std::set::iterator logger = loggers.begin(); logger != loggers.end(); ++logger) { - if((*logger)->getLevel() >= level && (*logger)->isCategorySet(category)) - (*logger)->logMessage(category, level, timestamp, message); - } +void Logger::log(MessageCategory category, MessageLevel level, const std::string &message) { + LogManager::getLogManager()->log(category, level, std::time(0), message); } void Logger::logf(MessageCategory category, MessageLevel level, const char *format, ...) { -- cgit v1.2.3