Go to the documentation of this file.
37 #ifndef LOGSYS_H_DEFINED
38 #define LOGSYS_H_DEFINED
46 #include <qb/qbconfig.h>
58 #define LOGSYS_MODE_OUTPUT_FILE (1<<0)
59 #define LOGSYS_MODE_OUTPUT_STDERR (1<<1)
60 #define LOGSYS_MODE_OUTPUT_SYSLOG (1<<2)
61 #define LOGSYS_MODE_FORK (1<<3)
62 #define LOGSYS_MODE_THREADED (1<<4)
67 #define LOGSYS_LEVEL_EMERG LOG_EMERG
68 #define LOGSYS_LEVEL_ALERT LOG_ALERT
69 #define LOGSYS_LEVEL_CRIT LOG_CRIT
70 #define LOGSYS_LEVEL_ERROR LOG_ERR
71 #define LOGSYS_LEVEL_WARNING LOG_WARNING
72 #define LOGSYS_LEVEL_NOTICE LOG_NOTICE
73 #define LOGSYS_LEVEL_INFO LOG_INFO
74 #define LOGSYS_LEVEL_DEBUG LOG_DEBUG
75 #define LOGSYS_LEVEL_TRACE LOG_TRACE
83 #define LOGSYS_MAX_SUBSYS_COUNT 32
84 #define LOGSYS_MAX_SUBSYS_NAMELEN 64
85 #define LOGSYS_MAX_PERROR_MSG_LEN 128
90 #define LOGSYS_DEBUG_OFF 0
91 #define LOGSYS_DEBUG_ON 1
92 #define LOGSYS_DEBUG_TRACE 2
94 #ifndef LOGSYS_UTILS_ONLY
124 unsigned int facility);
134 unsigned int priority);
171 const char **error_string,
182 unsigned int priority);
216 unsigned int priority);
227 const char *mainsystem,
278 #define LOGSYS_DECLARE_SYSTEM(name,mode,syslog_facility,syslog_priority)\
279 QB_LOG_INIT_DATA(logsys_qb_init); \
280 __attribute__ ((constructor)) \
281 static void logsys_system_init (void) \
283 if (_logsys_system_setup (name,mode,syslog_facility,syslog_priority) < 0) { \
285 "Unable to setup logging system: %s.\n", name); \
294 #define LOGSYS_DECLARE_SUBSYS(subsys) \
295 __attribute__ ((constructor)) \
296 static void logsys_subsys_init (void) \
299 _logsys_subsys_create ((subsys), __FILE__); \
300 if (logsys_subsys_id == -1) { \
302 "Unable to create logging subsystem: %s.\n", subsys); \
314 #define LOGSYS_PERROR(err_num, level, fmt, args...) do { \
315 char _error_str[LOGSYS_MAX_PERROR_MSG_LEN]; \
316 const char *_error_ptr = qb_strerror_r(err_num, _error_str, sizeof(_error_str)); \
317 qb_log(level, fmt ": %s (%d)", ##args, _error_ptr, err_num); \
320 #define log_printf(level, format, args...) qb_log(level, format, ##args)
321 #define ENTER qb_enter
322 #define LEAVE qb_leave
323 #define TRACE1(format, args...) qb_log(LOG_TRACE, "TRACE1:" #format, ##args)
324 #define TRACE2(format, args...) qb_log(LOG_TRACE, "TRACE2:" #format, ##args)
325 #define TRACE3(format, args...) qb_log(LOG_TRACE, "TRACE3:" #format, ##args)
326 #define TRACE4(format, args...) qb_log(LOG_TRACE, "TRACE4:" #format, ##args)
327 #define TRACE5(format, args...) qb_log(LOG_TRACE, "TRACE5:" #format, ##args)
328 #define TRACE6(format, args...) qb_log(LOG_TRACE, "TRACE6:" #format, ##args)
329 #define TRACE7(format, args...) qb_log(LOG_TRACE, "TRACE7:" #format, ##args)
330 #define TRACE8(format, args...) qb_log(LOG_TRACE, "TRACE8:" #format, ##args)