Changeset 2102

Show
Ignore:
Timestamp:
01/03/2008 22:54:56 (10 months ago)
Author:
chris
Message:

Add support for logging just to syslog (not console) at a given
priority.

Location:
box/trunk/lib/common
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • box/trunk/lib/common/Logging.cpp

    r2092 r2102  
    149149} 
    150150 
     151void Logging::LogToSyslog(Log::Level level, const std::string& rFile,  
     152        int line, const std::string& rMessage) 
     153{ 
     154        if (!sLogToSyslog) 
     155        { 
     156                return; 
     157        } 
     158 
     159        if (level > sGlobalLevel) 
     160        { 
     161                return; 
     162        } 
     163 
     164        std::string newMessage; 
     165         
     166        if (sContextSet) 
     167        { 
     168                newMessage += "[" + sContext + "] "; 
     169        } 
     170         
     171        newMessage += rMessage; 
     172 
     173        spSyslog->Log(level, rFile, line, newMessage); 
     174} 
     175 
    151176void Logging::SetContext(std::string context) 
    152177{ 
  • box/trunk/lib/common/Logging.h

    r2092 r2102  
    3131        line << stuff; \ 
    3232        Logging::Log(level, __FILE__, __LINE__, line.str()); \ 
     33} 
     34 
     35#define BOX_SYSLOG(level, stuff) \ 
     36{ \ 
     37        std::ostringstream line; \ 
     38        line << stuff; \ 
     39        Logging::LogToSyslog(level, __FILE__, __LINE__, line.str()); \ 
    3340} 
    3441 
     
    197204        static void Log(Log::Level level, const std::string& rFile,  
    198205                int line, const std::string& rMessage); 
     206        static void LogToSyslog(Log::Level level, const std::string& rFile,  
     207                int line, const std::string& rMessage); 
    199208        static void SetContext(std::string context); 
    200209        static void ClearContext();