8#include "cConsoleLogReceiver.h"
9#include "cFileLogReceiver.h"
14 cLogger::cLogger() : StartTime(0), MinLogLevel(ELL_INFO)
19 void cLogger::logCritical(
const char* sender,
const char *msg, ... )
21 if(ELL_CRITICAL >= MinLogLevel)
25 va_start( args, msg );
26 broadcastMessage( ELL_CRITICAL, sender, msg, args );
31 void cLogger::logError(
const char* sender,
const char *msg, ... )
33 if(ELL_ERROR >= MinLogLevel)
37 va_start( args, msg );
38 broadcastMessage( ELL_ERROR, sender, msg, args );
43 void cLogger::logWarning(
const char* sender,
const char *msg, ... )
45 if(ELL_WARNING >= MinLogLevel)
49 va_start( args, msg );
50 broadcastMessage( ELL_WARNING, sender, msg, args );
55 void cLogger::logInfo(
const char* sender,
const char *msg, ... )
57 if(ELL_INFO >= MinLogLevel)
61 va_start( args, msg );
62 broadcastMessage( ELL_INFO, sender, msg, args );
67 void cLogger::logDebug(
const char* sender,
const char *msg, ... )
69 if(ELL_DEBUG >= MinLogLevel)
73 va_start( args, msg );
74 broadcastMessage( ELL_DEBUG, sender, msg, args );
79 void cLogger::setLogLevel(
const LogLevel& logLevel )
82 MinLogLevel = logLevel;
85 void cLogger::broadcastMessage(
LogLevel level,
const char* sender,
const char* msg, va_list args )
87 float messageTime = (clock() - StartTime) / (
float)CLOCKS_PER_SEC;
88 vsnprintf( TempTextBuf, 2048, msg, args );
90 ReceiversIterator it = Receivers.begin();
91 for (it = Receivers.begin(); it != Receivers.end(); it++)
93 it->second->OnLogMessage(sender, TempTextBuf, level, messageTime);
96 bool cLogger::registerLogReceiver(
ILogReceiver* receiver,
const char* name)
99 cAudioString logName = fromUTF8(name);
100 Receivers[logName] = receiver;
105 void cLogger::unRegisterLogReceiver(
const char* name)
108 cAudioString logName = fromUTF8(name);
109 ReceiversIterator it = Receivers.find(logName);
110 if(it != Receivers.end())
117 bool cLogger::isLogReceiverRegistered(
const char* name)
120 cAudioString logName = fromUTF8(name);
121 ReceiversIterator it = Receivers.find(logName);
122 bool result = (it != Receivers.end());
130 cAudioString logName = fromUTF8(name);
131 ReceiversIterator it = Receivers.find(logName);
132 if(it != Receivers.end())
Interface for receiving log messages and relaying them to some kind of output device or stream.
Main namespace for the entire cAudio library.
LogLevel
Enum of all supported log levels in cAudio.