Go to the documentation of this file.
26 #ifndef USB_MODED_LOG_H_
27 # define USB_MODED_LOG_H_
39 # define LOG_ENABLE_DEBUG 01
40 # define LOG_ENABLE_TIMESTAMPS 01
41 # define LOG_ENABLE_LEVELTAGS 01
42 # define LOG_ENABLE_CONTEXT 0
52 LOG_MIN_LEVEL = LOG_CRIT,
53 LOG_MAX_LEVEL = LOG_DEBUG,
60 # if LOG_ENABLE_CONTEXT
61 const char *context_enter(
const char *func);
62 void context_leave(
void *aptr);
64 # define LOG_REGISTER_CONTEXT\
65 __attribute__((cleanup(context_leave))) const char *qqq =\
66 context_enter(__func__)
68 # define LOG_REGISTER_CONTEXT\
80 void log_emit_va (
const char *file,
const char *func,
int line,
int lev,
const char *fmt, va_list va);
81 void log_emit_real (
const char *file,
const char *func,
int line,
int lev,
const char *fmt, ...) __attribute__((format(printf, 5, 6)));
82 void log_debugf (const
char *fmt, ...);
87 void log_set_type (
int type);
98 # define log_emit(LEV, FMT, ARGS...) do {\
100 log_emit_real(__FILE__,__FUNCTION__,__LINE__, LEV, FMT, ##ARGS);\
104 # define log_crit( FMT, ARGS...) log_emit(LOG_CRIT, FMT, ##ARGS)
105 # define log_err( FMT, ARGS...) log_emit(LOG_ERR, FMT, ##ARGS)
106 # define log_warning( FMT, ARGS...) log_emit(LOG_WARNING, FMT, ##ARGS)
108 # if LOG_ENABLE_DEBUG
109 # define log_notice( FMT, ARGS...) log_emit(LOG_NOTICE, FMT, ##ARGS)
110 # define log_info( FMT, ARGS...) log_emit(LOG_INFO, FMT, ##ARGS)
111 # define log_debug( FMT, ARGS...) log_emit(LOG_DEBUG, FMT, ##ARGS)
113 # define log_notice( FMT, ARGS...) do{}while(0)
114 # define log_info( FMT, ARGS...) do{}while(0)
115 # define log_debug( FMT, ARGS...) do{}while(0)
117 # define log_debugf( FMT, ARGS...) do{}while(0)
void log_set_lineinfo(bool lineinfo)
bool log_get_lineinfo(void)
void log_set_name(const char *name)
const char * log_get_name(void)
void log_set_level(int lev)
void log_emit_va(const char *file, const char *func, int line, int lev, const char *fmt, va_list va)
void log_emit_real(const char *file, const char *func, int line, int lev, const char *fmt,...)