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 : m_fileFilter( 0 )
00022 {
00023 }
00024
00025 LogSink::~LogSink()
00026 {
00027 }
00028
00029 void LogSink::log( LogLevel level, LogArea area, const std::string& message ) const
00030 {
00031 LogHandlerMap::const_iterator it = m_logHandlers.begin();
00032 for( ; it != m_logHandlers.end(); ++it )
00033 {
00034 if( (*it).first && ( (*it).second.level <= level ) && ( (*it).second.areas & area ) )
00035 (*it).first->handleLog( level, area, message );
00036 }
00037 }
00038
00039 void LogSink::registerLogHandler( LogLevel level, int areas, LogHandler *lh )
00040 {
00041 LogInfo info = { level, areas };
00042 m_logHandlers[lh] = info;
00043 }
00044
00045 void LogSink::removeLogHandler( LogHandler *lh )
00046 {
00047 m_logHandlers.erase( lh );
00048 }
00049
00050 }