rework logging to make it more modular

This commit is contained in:
Lennart Poettering 2009-02-21 22:45:56 +01:00
parent 9b74afcfa3
commit 77779ead6d
9 changed files with 161 additions and 109 deletions

View file

@ -35,8 +35,8 @@
typedef enum pa_log_target {
PA_LOG_STDERR, /* default */
PA_LOG_SYSLOG,
PA_LOG_USER, /* to user specified function */
PA_LOG_NULL /* to /dev/null */
PA_LOG_NULL, /* to /dev/null */
PA_LOG_TARGET_MAX
} pa_log_target_t;
typedef enum pa_log_level {
@ -48,18 +48,33 @@ typedef enum pa_log_level {
PA_LOG_LEVEL_MAX
} pa_log_level_t;
typedef enum pa_log_flags {
PA_LOG_COLORS = 0x01, /* Show colorful output */
PA_LOG_PRINT_TIME = 0x02, /* Show time */
PA_LOG_PRINT_FILE = 0x04, /* Show source file */
PA_LOG_PRINT_META = 0x08, /* Show extended locaton information */
PA_LOG_PRINT_LEVEL = 0x10, /* Show log level prefix */
} pa_log_flags_t;
typedef enum pa_log_merge {
PA_LOG_SET,
PA_LOG_UNSET,
PA_LOG_RESET
} pa_log_merge_t;
/* Set an identification for the current daemon. Used when logging to syslog. */
void pa_log_set_ident(const char *p);
typedef void (*pa_log_func_t)(pa_log_level_t t, const char*s);
/* Set another log target. If t is PA_LOG_USER you may specify a function that is called every log string */
void pa_log_set_target(pa_log_target_t t, pa_log_func_t func);
/* Set a log target. */
void pa_log_set_target(pa_log_target_t t);
/* Maximal log level */
void pa_log_set_maximal_level(pa_log_level_t l);
void pa_log_set_show_meta(pa_bool_t b);
void pa_log_set_show_time(pa_bool_t b);
void pa_log_set_level(pa_log_level_t l);
/* Set flags */
void pa_log_set_flags(pa_log_flags_t flags, pa_log_merge_t merge);
/* Enable backtrace */
void pa_log_set_show_backtrace(unsigned nlevels);
void pa_log_level_meta(
@ -68,6 +83,7 @@ void pa_log_level_meta(
int line,
const char *func,
const char *format, ...) PA_GCC_PRINTF_ATTR(5,6);
void pa_log_levelv_meta(
pa_log_level_t level,
const char*file,
@ -76,8 +92,14 @@ void pa_log_levelv_meta(
const char *format,
va_list ap);
void pa_log_level(pa_log_level_t level, const char *format, ...) PA_GCC_PRINTF_ATTR(2,3);
void pa_log_levelv(pa_log_level_t level, const char *format, va_list ap);
void pa_log_level(
pa_log_level_t level,
const char *format, ...) PA_GCC_PRINTF_ATTR(2,3);
void pa_log_levelv(
pa_log_level_t level,
const char *format,
va_list ap);
#if __STDC_VERSION__ >= 199901L