libcamgm
Logger.hpp
Go to the documentation of this file.
1 /*---------------------------------------------------------------------\
2 | ____ _ __ __ ___ |
3 | |__ / \ / / . \ . \ |
4 | / / \ V /| _/ _/ |
5 | / /__ | | | | | | |
6 | /_____||_| |_| |_| |
7 | |
8 \---------------------------------------------------------------------*/
12 #ifndef CA_MGM_LOGGER_H
13 #define CA_MGM_LOGGER_H
14 
15 #include <iosfwd>
16 #include <cstring>
17 #include <ca-mgm/String.hpp>
18 
40 
41 #ifndef CA_MGM_LOGGER_LOGGROUP
42 
43 #define CA_MGM_LOGGER_LOGGROUP "ca_mgm"
44 #endif
45 
46 #define DBG _DBG( CA_MGM_LOGGER_LOGGROUP )
47 #define INF _INF( CA_MGM_LOGGER_LOGGROUP )
48 #define WAR _WAR( CA_MGM_LOGGER_LOGGROUP )
49 #define ERR _ERR( CA_MGM_LOGGER_LOGGROUP )
50 #define FAT _FAT( CA_MGM_LOGGER_LOGGROUP )
51 
52 #define _DBG(GROUP) CA_MGM_LOGGER_LOG( GROUP, ca_mgm::logger::E_DEBUG )
53 #define _INF(GROUP) CA_MGM_LOGGER_LOG( GROUP, ca_mgm::logger::E_INFO )
54 #define _WAR(GROUP) CA_MGM_LOGGER_LOG( GROUP, ca_mgm::logger::E_WARN )
55 #define _ERR(GROUP) CA_MGM_LOGGER_LOG( GROUP, ca_mgm::logger::E_ERROR )
56 #define _FAT(GROUP) CA_MGM_LOGGER_LOG( GROUP, ca_mgm::logger::E_FATAL )
57 
58 #define _BASEFILE ( *__FILE__ == '/' ? strrchr( __FILE__, '/' ) + 1 : __FILE__ )
59 
61 #define CA_MGM_LOGGER_LOG(GROUP,LEVEL) \
62  ca_mgm::logger::getStream( GROUP, LEVEL, _BASEFILE, __FUNCTION__, __LINE__ )
63 
66 namespace ca_mgm
68 {
69 
71  namespace logger
72  {
73 
78  enum LogLevel {
79  E_FATAL = 1,
80  E_ERROR = 2,
81  E_WARN = 3,
82  E_INFO = 4,
83  E_DEBUG = 5
84  };
85  extern std::string logLevelToString( LogLevel level_r );
86 
97  extern std::ostream & getStream( const char * group_r,
98  LogLevel level_r,
99  const char * file_r,
100  const char * func_r,
101  const int line_r );
102  extern bool isEnabledFor( LogLevel level_r );
103 
104  extern void setLogLevel( LogLevel level_r );
105 
107  } // namespace logger
109 
111 } // namespace ca_mgm
113 #endif // CA_MGM_LOGGER_H
void setLogLevel(LogLevel level_r)
Definition: Logger.hpp:81
Definition: Logger.hpp:79
LogLevel
Definition: Logger.hpp:78
std::string logLevelToString(LogLevel level_r)
std::ostream & getStream(const char *group_r, LogLevel level_r, const char *file_r, const char *func_r, const int line_r)
Definition: Logger.hpp:83
bool isEnabledFor(LogLevel level_r)
Definition: Logger.hpp:82
Definition: Logger.hpp:80
Definition: ByteBuffer.hpp:37