diff options
author | Matthias Schiffer <matthias@gamezock.de> | 2008-10-27 22:41:06 +0100 |
---|---|---|
committer | Matthias Schiffer <matthias@gamezock.de> | 2008-10-27 22:41:06 +0100 |
commit | 2b83ae7c71dc706fb4fd7b4efc4a8ffee8dfe522 (patch) | |
tree | 4f63c64041fd93255105493fd444a65ad0761b9b /src/Common/Logger.cpp | |
parent | b58831e5eec4d0595099b8e9c2979b157fe37041 (diff) | |
download | mad-2b83ae7c71dc706fb4fd7b4efc4a8ffee8dfe522.tar mad-2b83ae7c71dc706fb4fd7b4efc4a8ffee8dfe522.zip |
Neues Initialisierung-Framework hinzugef?gt
Diffstat (limited to 'src/Common/Logger.cpp')
-rw-r--r-- | src/Common/Logger.cpp | 62 |
1 files changed, 3 insertions, 59 deletions
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 <cstdlib> namespace Mad { namespace Common { -std::auto_ptr<Logger::ConfigHelper> Logger::configHelper; -std::set<Logger*> Logger::loggers; -std::auto_ptr<std::queue<Logger::Message> > Logger::messageQueue(new std::queue<Message>); - -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<std::queue<Message> > 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<Logger*>::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, ...) { |