Changeset 1225


Ignore:
Timestamp:
16/12/2006 20:26:31 (5 years ago)
Author:
chris
Message:
  • Rename Loggers class to Logging, which looks nicer.
  • Fix type of "line" argument to loggers to int rather than std::string to match LINE
  • Define necessary static objects
  • Remove global condition on logging for now

(refs #3)

Location:
box/chris/merge/lib/common
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • box/chris/merge/lib/common/Logging.cpp

    r1224 r1225  
    1616#include "Logging.h" 
    1717 
    18 bool Loggers::sLogToSyslog  = false; 
    19 bool Loggers::sLogToConsole = false; 
    20 bool Loggers::sContextSet   = false; 
     18bool Logging::sLogToSyslog  = false; 
     19bool Logging::sLogToConsole = false; 
     20bool Logging::sContextSet   = false; 
    2121 
    22 void Loggers::ToSyslog(bool enabled) 
     22std::vector<Logger*> Logging::sLoggers; 
     23std::string Logging::sContext; 
     24Console    Logging::sConsole; 
     25Syslog     Logging::sSyslog; 
     26Log::Level  Logging::sGlobalLevel; 
     27 
     28void Logging::ToSyslog(bool enabled) 
    2329{ 
    2430        if (!sLogToSyslog && enabled) 
     
    3541} 
    3642 
    37 void Loggers::ToConsole(bool enabled) 
     43void Logging::ToConsole(bool enabled) 
    3844{ 
    3945        if (!sLogToConsole && enabled) 
     
    5056} 
    5157 
    52 void Loggers::FilterConsole(Log::Level level) 
     58void Logging::FilterConsole(Log::Level level) 
    5359{ 
    5460        sConsole.Filter(level); 
    5561} 
    5662 
    57 void Loggers::FilterSyslog(Log::Level level) 
     63void Logging::FilterSyslog(Log::Level level) 
    5864{ 
    5965        sSyslog.Filter(level); 
    6066} 
    6167 
    62 void Loggers::Add(Logger* pNewLogger) 
     68void Logging::Add(Logger* pNewLogger) 
    6369{ 
    6470        for (std::vector<Logger*>::iterator i = sLoggers.begin(); 
     
    7480} 
    7581 
    76 void Loggers::Remove(Logger* pOldLogger) 
     82void Logging::Remove(Logger* pOldLogger) 
    7783{ 
    7884        for (std::vector<Logger*>::iterator i = sLoggers.begin(); 
     
    8793} 
    8894 
    89 void Loggers::Log(Log::Level level, const std::string& rFile,  
    90         const std::string& rLine, const std::string& rMessage) 
     95void Logging::Log(Log::Level level, const std::string& rFile,  
     96        int line, const std::string& rMessage) 
    9197{ 
    9298        std::string newMessage; 
     
    102108                i != sLoggers.end(); i++) 
    103109        { 
    104                 bool result = (*i)->Log(level, rFile, rLine, newMessage); 
     110                bool result = (*i)->Log(level, rFile, line, newMessage); 
    105111                if (!result) 
    106112                { 
     
    110116} 
    111117 
    112 void Loggers::SetContext(std::string context) 
     118void Logging::SetContext(std::string context) 
    113119{ 
    114120        sContext = context; 
     
    116122} 
    117123 
    118 void Loggers::ClearContext() 
     124void Logging::ClearContext() 
    119125{ 
    120126        sContextSet = false; 
    121127} 
    122128 
    123 void Loggers::SetProgramName(const std::string& rProgramName) 
     129void Logging::SetProgramName(const std::string& rProgramName) 
    124130{ 
    125131        for (std::vector<Logger*>::iterator i = sLoggers.begin(); 
     
    131137 
    132138bool Console::Log(Log::Level level, const std::string& rFile,  
    133         const std::string& rLine, std::string& rMessage) 
     139        int line, std::string& rMessage) 
    134140{ 
    135141        if (level > GetLevel()) 
     
    145151        } 
    146152         
    147         fprintf(target, "%s", rMessage.c_str()); 
     153        fprintf(target, "%s\n", rMessage.c_str()); 
    148154         
    149155        return true; 
     
    151157 
    152158bool Syslog::Log(Log::Level level, const std::string& rFile,  
    153         const std::string& rLine, std::string& rMessage) 
     159        int line, std::string& rMessage) 
    154160{ 
    155161        if (level > GetLevel()) 
  • box/chris/merge/lib/common/Logging.h

    r1224 r1225  
    1414#include <vector> 
    1515 
     16/* 
    1617#define BOX_LOG(level, stuff) \ 
    1718{ \ 
     
    2122        Log::Write(level, __FILE__, __LINE__, line.str()); \ 
    2223    } \ 
     24} 
     25*/ 
     26 
     27#define BOX_LOG(level, stuff) \ 
     28{ \ 
     29        std::ostringstream line; \ 
     30        line << stuff; \ 
     31        Logging::Log(level, __FILE__, __LINE__, line.str()); \ 
    2332} 
    2433 
     
    4251// Class 
    4352//              Name:    Logger 
    44 //              Purpose: Abstract class (interface) for log targets 
     53//              Purpose: Abstract base class for log targets 
    4554//              Created: 2006/12/16 
    4655// 
     
    5766         
    5867        virtual bool Log(Log::Level level, const std::string& rFile,  
    59                 const std::string& rLine, std::string& rMessage) = 0; 
     68                int line, std::string& rMessage) = 0; 
    6069         
    6170        void Filter(Log::Level level) 
     
    7584//              Name:    Console 
    7685//              Purpose: Console logging target 
    77 //              Created: 2006/12/12 
     86//              Created: 2006/12/16 
    7887// 
    7988// -------------------------------------------------------------------------- 
     
    8392        public: 
    8493        virtual bool Log(Log::Level level, const std::string& rFile,  
    85                 const std::string& rLine, std::string& rMessage); 
     94                int line, std::string& rMessage); 
    8695        virtual const char* GetType() { return "Console"; } 
    8796        virtual void SetProgramName(const std::string& rProgramName) { } 
     
    93102//              Name:    Syslog 
    94103//              Purpose: Syslog (or Windows Event Viewer) logging target 
    95 //              Created: 2006/12/12 
     104//              Created: 2006/12/16 
    96105// 
    97106// -------------------------------------------------------------------------- 
     
    104113         
    105114        virtual bool Log(Log::Level level, const std::string& rFile,  
    106                 const std::string& rLine, std::string& rMessage); 
     115                int line, std::string& rMessage); 
    107116        virtual const char* GetType() { return "Syslog"; } 
    108117        virtual void SetProgramName(const std::string& rProgramName); 
     
    112121// 
    113122// Class 
    114 //              Name:    Log 
     123//              Name:    Logging 
    115124//              Purpose: Static logging helper, keeps track of enabled loggers 
    116125//                       and distributes log messages to them. 
    117 //              Created: 2006/12/12 
     126//              Created: 2006/12/16 
    118127// 
    119128// -------------------------------------------------------------------------- 
    120129 
    121 class Loggers 
     130class Logging 
    122131{ 
    123132        private: 
     
    139148        static void Remove (Logger* pOldLogger); 
    140149        static void Log(Log::Level level, const std::string& rFile,  
    141                 const std::string& rLine, const std::string& rMessage); 
     150                int line, const std::string& rMessage); 
    142151        static void SetContext(std::string context); 
    143152        static void ClearContext(); 
Note: See TracChangeset for help on using the changeset viewer.