diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/common/Logging.cpp | 42 | ||||
-rw-r--r-- | lib/common/Logging.h | 29 |
2 files changed, 43 insertions, 28 deletions
diff --git a/lib/common/Logging.cpp b/lib/common/Logging.cpp index 0e77f252..ee76cde4 100644 --- a/lib/common/Logging.cpp +++ b/lib/common/Logging.cpp @@ -15,11 +15,17 @@ #include "Logging.h" -bool Loggers::sLogToSyslog = false; -bool Loggers::sLogToConsole = false; -bool Loggers::sContextSet = false; +bool Logging::sLogToSyslog = false; +bool Logging::sLogToConsole = false; +bool Logging::sContextSet = false; -void Loggers::ToSyslog(bool enabled) +std::vector<Logger*> Logging::sLoggers; +std::string Logging::sContext; +Console Logging::sConsole; +Syslog Logging::sSyslog; +Log::Level Logging::sGlobalLevel; + +void Logging::ToSyslog(bool enabled) { if (!sLogToSyslog && enabled) { @@ -34,7 +40,7 @@ void Loggers::ToSyslog(bool enabled) sLogToSyslog = enabled; } -void Loggers::ToConsole(bool enabled) +void Logging::ToConsole(bool enabled) { if (!sLogToConsole && enabled) { @@ -49,17 +55,17 @@ void Loggers::ToConsole(bool enabled) sLogToConsole = enabled; } -void Loggers::FilterConsole(Log::Level level) +void Logging::FilterConsole(Log::Level level) { sConsole.Filter(level); } -void Loggers::FilterSyslog(Log::Level level) +void Logging::FilterSyslog(Log::Level level) { sSyslog.Filter(level); } -void Loggers::Add(Logger* pNewLogger) +void Logging::Add(Logger* pNewLogger) { for (std::vector<Logger*>::iterator i = sLoggers.begin(); i != sLoggers.end(); i++) @@ -73,7 +79,7 @@ void Loggers::Add(Logger* pNewLogger) sLoggers.insert(sLoggers.begin(), pNewLogger); } -void Loggers::Remove(Logger* pOldLogger) +void Logging::Remove(Logger* pOldLogger) { for (std::vector<Logger*>::iterator i = sLoggers.begin(); i != sLoggers.end(); i++) @@ -86,8 +92,8 @@ void Loggers::Remove(Logger* pOldLogger) } } -void Loggers::Log(Log::Level level, const std::string& rFile, - const std::string& rLine, const std::string& rMessage) +void Logging::Log(Log::Level level, const std::string& rFile, + int line, const std::string& rMessage) { std::string newMessage; @@ -101,7 +107,7 @@ void Loggers::Log(Log::Level level, const std::string& rFile, for (std::vector<Logger*>::iterator i = sLoggers.begin(); i != sLoggers.end(); i++) { - bool result = (*i)->Log(level, rFile, rLine, newMessage); + bool result = (*i)->Log(level, rFile, line, newMessage); if (!result) { return; @@ -109,18 +115,18 @@ void Loggers::Log(Log::Level level, const std::string& rFile, } } -void Loggers::SetContext(std::string context) +void Logging::SetContext(std::string context) { sContext = context; sContextSet = true; } -void Loggers::ClearContext() +void Logging::ClearContext() { sContextSet = false; } -void Loggers::SetProgramName(const std::string& rProgramName) +void Logging::SetProgramName(const std::string& rProgramName) { for (std::vector<Logger*>::iterator i = sLoggers.begin(); i != sLoggers.end(); i++) @@ -130,7 +136,7 @@ void Loggers::SetProgramName(const std::string& rProgramName) } bool Console::Log(Log::Level level, const std::string& rFile, - const std::string& rLine, std::string& rMessage) + int line, std::string& rMessage) { if (level > GetLevel()) { @@ -144,13 +150,13 @@ bool Console::Log(Log::Level level, const std::string& rFile, target = stderr; } - fprintf(target, "%s", rMessage.c_str()); + fprintf(target, "%s\n", rMessage.c_str()); return true; } bool Syslog::Log(Log::Level level, const std::string& rFile, - const std::string& rLine, std::string& rMessage) + int line, std::string& rMessage) { if (level > GetLevel()) { diff --git a/lib/common/Logging.h b/lib/common/Logging.h index 9fb1be4a..e7a11d36 100644 --- a/lib/common/Logging.h +++ b/lib/common/Logging.h @@ -13,6 +13,7 @@ #include <sstream> #include <vector> +/* #define BOX_LOG(level, stuff) \ { \ if(Log::sMaxLoggingLevelForAnyOutput >= level) \ @@ -21,6 +22,14 @@ Log::Write(level, __FILE__, __LINE__, line.str()); \ } \ } +*/ + +#define BOX_LOG(level, stuff) \ +{ \ + std::ostringstream line; \ + line << stuff; \ + Logging::Log(level, __FILE__, __LINE__, line.str()); \ +} #define BOX_FATAL(stuff) BOX_LOG(Log::FATAL, stuff) #define BOX_ERROR(stuff) BOX_LOG(Log::ERROR, stuff) @@ -41,7 +50,7 @@ namespace Log // // Class // Name: Logger -// Purpose: Abstract class (interface) for log targets +// Purpose: Abstract base class for log targets // Created: 2006/12/16 // // -------------------------------------------------------------------------- @@ -56,7 +65,7 @@ class Logger virtual ~Logger() { } virtual bool Log(Log::Level level, const std::string& rFile, - const std::string& rLine, std::string& rMessage) = 0; + int line, std::string& rMessage) = 0; void Filter(Log::Level level) { @@ -74,7 +83,7 @@ class Logger // Class // Name: Console // Purpose: Console logging target -// Created: 2006/12/12 +// Created: 2006/12/16 // // -------------------------------------------------------------------------- @@ -82,7 +91,7 @@ class Console : public Logger { public: virtual bool Log(Log::Level level, const std::string& rFile, - const std::string& rLine, std::string& rMessage); + int line, std::string& rMessage); virtual const char* GetType() { return "Console"; } virtual void SetProgramName(const std::string& rProgramName) { } }; @@ -92,7 +101,7 @@ class Console : public Logger // Class // Name: Syslog // Purpose: Syslog (or Windows Event Viewer) logging target -// Created: 2006/12/12 +// Created: 2006/12/16 // // -------------------------------------------------------------------------- @@ -103,7 +112,7 @@ class Syslog : public Logger virtual ~Syslog(); virtual bool Log(Log::Level level, const std::string& rFile, - const std::string& rLine, std::string& rMessage); + int line, std::string& rMessage); virtual const char* GetType() { return "Syslog"; } virtual void SetProgramName(const std::string& rProgramName); }; @@ -111,14 +120,14 @@ class Syslog : public Logger // -------------------------------------------------------------------------- // // Class -// Name: Log +// Name: Logging // Purpose: Static logging helper, keeps track of enabled loggers // and distributes log messages to them. -// Created: 2006/12/12 +// Created: 2006/12/16 // // -------------------------------------------------------------------------- -class Loggers +class Logging { private: static std::vector<Logger*> sLoggers; @@ -138,7 +147,7 @@ class Loggers static void Add (Logger* pNewLogger); static void Remove (Logger* pOldLogger); static void Log(Log::Level level, const std::string& rFile, - const std::string& rLine, const std::string& rMessage); + int line, const std::string& rMessage); static void SetContext(std::string context); static void ClearContext(); static void SetGlobalLevel(Log::Level level) { sGlobalLevel = level; } |