logsink.cpp
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #include "logsink.h"
00016
00017 namespace gloox
00018 {
00019
00020 LogSink::LogSink()
00021 {
00022 }
00023
00024 LogSink::~LogSink()
00025 {
00026 }
00027
00028 void LogSink::log( LogLevel level, LogArea area, const std::string& message ) const
00029 {
00030 LogHandlerMap::const_iterator it = m_logHandlers.begin();
00031 for( ; it != m_logHandlers.end(); ++it )
00032 {
00033 if( (*it).first && ( (*it).second.level <= level ) && ( (*it).second.areas & area ) )
00034 (*it).first->handleLog( level, area, message );
00035 }
00036 }
00037
00038 void LogSink::registerLogHandler( LogLevel level, int areas, LogHandler* lh )
00039 {
00040 LogInfo info = { level, areas };
00041 m_logHandlers[lh] = info;
00042 }
00043
00044 void LogSink::removeLogHandler( LogHandler* lh )
00045 {
00046 m_logHandlers.erase( lh );
00047 }
00048
00049 }