12#ifndef ZYPP_BASE_LOGGER_H 
   13#define ZYPP_BASE_LOGGER_H 
   33      TraceLeave( 
const char * file_r, 
const char * fnc_r, 
int line_r, std::string msg_r=std::string() );
 
 
   42#define TRACE(M) ::zypp::debug::TraceLeave _TraceLeave( __FILE__, __FUNCTION__, __LINE__, M ); 
   43#define XTRACE ::zypp::debug::TraceLeave _TraceLeave( __FILE__, __FUNCTION__, __LINE__ ); 
   48      Osd( std::ostream &, 
int = 0 );
 
   54        _strout << std::forward<Tp>(val);
 
   55        _strlog << std::forward<Tp>(val);
 
 
 
   65#define OSD ::zypp::debug::Osd(L_USR("OSD")) 
   93#ifndef ZYPP_BASE_LOGGER_LOGGROUP 
   95#define ZYPP_BASE_LOGGER_LOGGROUP "DEFINE_LOGGROUP" 
   98#define XXX L_XXX( ZYPP_BASE_LOGGER_LOGGROUP ) 
   99#define DBG L_DBG( ZYPP_BASE_LOGGER_LOGGROUP ) 
  100#define MIL L_MIL( ZYPP_BASE_LOGGER_LOGGROUP ) 
  101#define WAR L_WAR( ZYPP_BASE_LOGGER_LOGGROUP ) 
  102#define ERR L_ERR( ZYPP_BASE_LOGGER_LOGGROUP ) 
  103#define SEC L_SEC( ZYPP_BASE_LOGGER_LOGGROUP ) 
  104#define INT L_INT( ZYPP_BASE_LOGGER_LOGGROUP ) 
  105#define USR L_USR( ZYPP_BASE_LOGGER_LOGGROUP ) 
  107#define L_XXX(GROUP) ZYPP_BASE_LOGGER_LOG( GROUP, zypp::base::logger::E_XXX ) 
  108#define L_DBG(GROUP) ZYPP_BASE_LOGGER_LOG( GROUP"++", zypp::base::logger::E_MIL ) 
  109#define L_MIL(GROUP) ZYPP_BASE_LOGGER_LOG( GROUP, zypp::base::logger::E_MIL ) 
  110#define L_WAR(GROUP) ZYPP_BASE_LOGGER_LOG( GROUP, zypp::base::logger::E_WAR ) 
  111#define L_ERR(GROUP) ZYPP_BASE_LOGGER_LOG( GROUP, zypp::base::logger::E_ERR ) 
  112#define L_SEC(GROUP) ZYPP_BASE_LOGGER_LOG( GROUP, zypp::base::logger::E_SEC ) 
  113#define L_INT(GROUP) ZYPP_BASE_LOGGER_LOG( GROUP, zypp::base::logger::E_INT ) 
  114#define L_USR(GROUP) ZYPP_BASE_LOGGER_LOG( GROUP, zypp::base::logger::E_USR ) 
  117#define L_ENV_CONSTR_DEFINE_FUNC(ENV) \ 
  118    namespace zypp::log { \ 
  119      bool has_env_constr_##ENV () \ 
  121          static bool has_##ENV = (::getenv(#ENV) != NULL); \ 
  124      const char *empty_or_group_if_##ENV ( const char *group ) \ 
  126        return has_env_constr_##ENV() ? group : nullptr; \ 
 
  130#define L_ENV_CONSTR_FWD_DECLARE_FUNC(ENV) namespace zypp::log { bool has_env_constr_##ENV (); const char *empty_or_group_if_##ENV ( const char *group ); } 
  131#define L_ENV_CONSTR(ENV,GROUP,LEVEL) ZYPP_BASE_LOGGER_LOG( zypp::log::empty_or_group_if_##ENV( GROUP ), LEVEL ) 
  133#define L_BASEFILE ( *__FILE__ == '/' ? strrchr( __FILE__, '/' ) + 1 : __FILE__ ) 
  136#define ZYPP_BASE_LOGGER_LOG(GROUP,LEVEL) \ 
  137        zypp::base::logger::getStream( GROUP, LEVEL, L_BASEFILE, __FUNCTION__, __LINE__ ) 
 
  177      extern std::ostream & 
getStream( 
const char * group_r,
 
std::ostream & operator<<(std::ostream &str, const zypp::sat::detail::CDataiterator *obj)
LogLevel
Definition of log levels.
@ E_SEC
Secutrity related.
@ E_XXX
Excessive logging.
std::ostream & getStream(const char *group_r, LogLevel level_r, const char *file_r, const char *func_r, const int line_r)
Return a log stream to write on.
Easy-to use interface to the ZYPP dependency resolver.
const Arch Arch_armv7hnl Arch_armv7nhl ZYPP_API
Osd(std::ostream &, int=0)
Osd & operator<<(Tp &&val)
TraceLeave(const TraceLeave &)=delete
TraceLeave & operator=(const TraceLeave &)=delete