summaryrefslogtreecommitdiffstats
path: root/src/Common/LogManager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/Common/LogManager.cpp')
-rw-r--r--src/Common/LogManager.cpp35
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);
}
}