libzypp  10.5.0
Logger.h
Go to the documentation of this file.
00001 /*---------------------------------------------------------------------\
00002 |                          ____ _   __ __ ___                          |
00003 |                         |__  / \ / / . \ . \                         |
00004 |                           / / \ V /|  _/  _/                         |
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     } // namespace logger
00117 
00119   } // namespace base
00122 } // namespace zypp
00124 #endif // ZYPP_BASE_LOGGER_H