Logger.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00012 #ifndef ZYPP_BASE_LOGGER_H
00013 #define ZYPP_BASE_LOGGER_H
00014
00015 #include <iosfwd>
00016 #include <cstring>
00017
00039
00040 #ifndef ZYPP_BASE_LOGGER_LOGGROUP
00041
00042 #define ZYPP_BASE_LOGGER_LOGGROUP "DEFINE_LOGGROUP"
00043 #endif
00044
00045 #define XXX _XXX( ZYPP_BASE_LOGGER_LOGGROUP )
00046 #define DBG _DBG( ZYPP_BASE_LOGGER_LOGGROUP )
00047 #define MIL _MIL( ZYPP_BASE_LOGGER_LOGGROUP )
00048 #define WAR _WAR( ZYPP_BASE_LOGGER_LOGGROUP )
00049 #define ERR _ERR( ZYPP_BASE_LOGGER_LOGGROUP )
00050 #define SEC _SEC( ZYPP_BASE_LOGGER_LOGGROUP )
00051 #define INT _INT( ZYPP_BASE_LOGGER_LOGGROUP )
00052 #define USR _USR( ZYPP_BASE_LOGGER_LOGGROUP )
00053
00054 #define _XXX(GROUP) ZYPP_BASE_LOGGER_LOG( GROUP, zypp::base::logger::E_XXX )
00055 #define _DBG(GROUP) ZYPP_BASE_LOGGER_LOG( GROUP"++", zypp::base::logger::E_MIL )
00056 #define _MIL(GROUP) ZYPP_BASE_LOGGER_LOG( GROUP, zypp::base::logger::E_MIL )
00057 #define _WAR(GROUP) ZYPP_BASE_LOGGER_LOG( GROUP, zypp::base::logger::E_WAR )
00058 #define _ERR(GROUP) ZYPP_BASE_LOGGER_LOG( GROUP, zypp::base::logger::E_ERR )
00059 #define _SEC(GROUP) ZYPP_BASE_LOGGER_LOG( GROUP, zypp::base::logger::E_SEC )
00060 #define _INT(GROUP) ZYPP_BASE_LOGGER_LOG( GROUP, zypp::base::logger::E_INT )
00061 #define _USR(GROUP) ZYPP_BASE_LOGGER_LOG( GROUP, zypp::base::logger::E_USR )
00062
00063 #define _BASEFILE ( *__FILE__ == '/' ? strrchr( __FILE__, '/' ) + 1 : __FILE__ )
00064
00066 #define ZYPP_BASE_LOGGER_LOG(GROUP,LEVEL) \
00067 zypp::base::logger::getStream( GROUP, LEVEL, _BASEFILE, __FUNCTION__, __LINE__ )
00068
00071
00072 namespace zypp
00073 {
00074
00075 namespace base
00076 {
00077
00079 namespace logger
00080 {
00081
00086 enum LogLevel {
00087 E_XXX = 999,
00088 E_DBG = 0,
00089 E_MIL,
00090 E_WAR,
00091 E_ERR,
00092 E_SEC,
00093 E_INT,
00094 E_USR
00095 };
00096
00107 extern std::ostream & getStream( const char * group_r,
00108 LogLevel level_r,
00109 const char * file_r,
00110 const char * func_r,
00111 const int line_r );
00112 extern bool isExcessive();
00113
00115 }
00117
00119 }
00122 }
00124 #endif // ZYPP_BASE_LOGGER_H