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.cpp52
1 files changed, 25 insertions, 27 deletions
diff --git a/src/Common/LogManager.cpp b/src/Common/LogManager.cpp
index 5741d38..b17d916 100644
--- a/src/Common/LogManager.cpp
+++ b/src/Common/LogManager.cpp
@@ -30,22 +30,22 @@ LogManager LogManager::logManager;
void LogManager::ConsoleLogger::logMessage(MessageCategory category _UNUSED_PARAMETER_, MessageLevel level, time_t timestamp _UNUSED_PARAMETER_, const std::string &message) {
if(level != CRITICAL) {// Critical messages are printed to cerr directly, so don't print them a second time
- gl_lock_lock(cerrLock);
+ cerrLock.lock();
std::cerr << message << std::endl;
- gl_lock_unlock(cerrLock);
+ cerrLock.unlock();
}
}
void LogManager::ConsoleLogger::logMessage(MessageCategory category _UNUSED_PARAMETER_, MessageLevel, time_t timestamp _UNUSED_PARAMETER_, const std::string &message, const std::string &messageSource) {
- gl_lock_lock(cerrLock);
+ cerrLock.lock();
std::cerr << message << " from " << messageSource << std::endl;
- gl_lock_unlock(cerrLock);
+ cerrLock.unlock();
}
void LogManager::ConsoleLogger::logMessageDirect(MessageCategory category _UNUSED_PARAMETER_, MessageLevel level _UNUSED_PARAMETER_, time_t timestamp _UNUSED_PARAMETER_, const std::string &message) {
- gl_lock_lock(cerrLock);
+ cerrLock.lock();
std::cerr << message << std::endl;
- gl_lock_unlock(cerrLock);
+ cerrLock.unlock();
}
@@ -73,72 +73,70 @@ void LogManager::configFinished() {
if(loggers.empty())
registerLogger(static_cast<Logger*>(&consoleLogger));
- gl_lock_lock(lock);
+ queueLock.lock();
configured = true;
- gl_cond_signal(queueCond);
- gl_lock_unlock(lock);
+ queueLock.unlock();
+ queueCond.notify_one();
}
void LogManager::log(MessageCategory category, MessageLevel level, time_t timestamp, const std::string &message) {
if(level == LoggerBase::CRITICAL)
consoleLogger.logMessageDirect(category, level, timestamp, message);
- gl_lock_lock(lock);
+ queueLock.lock();
Message m = {category, level, timestamp, message};
messageQueue.push(m);
- gl_cond_signal(queueCond);
- gl_lock_unlock(lock);
+ queueLock.unlock();
+ queueCond.notify_one();
}
void LogManager::log(MessageCategory category, MessageLevel level, time_t timestamp, const std::string &message, const std::string &source) {
- gl_lock_lock(lock);
+ queueLock.lock();
RemoteMessage m = {category, level, timestamp, message, source};
remoteMessageQueue.push(m);
- gl_cond_signal(queueCond);
- gl_lock_unlock(lock);
+ queueLock.unlock();
+ queueCond.notify_one();
}
void LogManager::loggerThread() {
- gl_lock_lock(lock);
+ boost::unique_lock<boost::mutex> lock(queueLock);
running = true;
while(running) {
while(running && ((messageQueue.empty() && messageQueue.empty()) || !configured))
- gl_cond_wait(queueCond, lock);
+ queueCond.wait(lock);
while(!messageQueue.empty()) {
Message message = messageQueue.front();
messageQueue.pop();
- gl_lock_unlock(lock);
+ lock.unlock();
- gl_lock_lock(loggerLock);
+ loggerLock.lock();
for(std::set<Logger*>::iterator logger = loggers.begin(); logger != loggers.end(); ++logger) {
if((*logger)->getLevel() >= message.level && (*logger)->isCategorySet(message.category))
(*logger)->logMessage(message.category, message.level, message.timestamp, message.message);
}
- gl_lock_unlock(loggerLock);
+ loggerLock.unlock();
- gl_lock_lock(lock);
+ lock.lock();
}
while(!remoteMessageQueue.empty()) {
RemoteMessage message = remoteMessageQueue.front();
remoteMessageQueue.pop();
- gl_lock_unlock(lock);
+ lock.unlock();
- gl_lock_lock(remoteLoggerLock);
+ remoteLoggerLock.lock();
for(std::set<RemoteLogger*>::iterator logger = remoteLoggers.begin(); logger != remoteLoggers.end(); ++logger) {
if((*logger)->getLevel() >= message.level && (*logger)->isCategorySet(message.category))
(*logger)->logMessage(message.category, message.level, message.timestamp, message.message, message.source);
}
- gl_lock_unlock(remoteLoggerLock);
+ remoteLoggerLock.unlock();
- gl_lock_lock(lock);
+ lock.lock();
}
}
-
- gl_lock_unlock(lock);
}
}