summaryrefslogtreecommitdiffstats
path: root/src/Common/Logger.cpp
diff options
context:
space:
mode:
authorMatthias Schiffer <matthias@gamezock.de>2008-10-27 22:41:06 +0100
committerMatthias Schiffer <matthias@gamezock.de>2008-10-27 22:41:06 +0100
commit2b83ae7c71dc706fb4fd7b4efc4a8ffee8dfe522 (patch)
tree4f63c64041fd93255105493fd444a65ad0761b9b /src/Common/Logger.cpp
parentb58831e5eec4d0595099b8e9c2979b157fe37041 (diff)
downloadmad-2b83ae7c71dc706fb4fd7b4efc4a8ffee8dfe522.tar
mad-2b83ae7c71dc706fb4fd7b4efc4a8ffee8dfe522.zip
Neues Initialisierung-Framework hinzugef?gt
Diffstat (limited to 'src/Common/Logger.cpp')
-rw-r--r--src/Common/Logger.cpp62
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, ...) {