diff options
Diffstat (limited to 'pjlib/src/pj/log_writer_stdout.c')
-rw-r--r-- | pjlib/src/pj/log_writer_stdout.c | 34 |
1 files changed, 10 insertions, 24 deletions
diff --git a/pjlib/src/pj/log_writer_stdout.c b/pjlib/src/pj/log_writer_stdout.c index 9bffe466..e14b2dfa 100644 --- a/pjlib/src/pj/log_writer_stdout.c +++ b/pjlib/src/pj/log_writer_stdout.c @@ -20,37 +20,19 @@ #include <pj/os.h> #include <pj/compat/stdfileio.h> -#define CLR_FATAL (PJ_TERM_COLOR_BRIGHT | PJ_TERM_COLOR_R) -#define CLR_WARNING (PJ_TERM_COLOR_BRIGHT | PJ_TERM_COLOR_R | PJ_TERM_COLOR_G) -#define CLR_INFO (PJ_TERM_COLOR_BRIGHT | PJ_TERM_COLOR_R | PJ_TERM_COLOR_G | \ - PJ_TERM_COLOR_B) -#define CLR_DEFAULT (PJ_TERM_COLOR_R | PJ_TERM_COLOR_G | PJ_TERM_COLOR_B) static void term_set_color(int level) { #if defined(PJ_TERM_HAS_COLOR) && PJ_TERM_HAS_COLOR != 0 - unsigned attr = 0; - switch (level) { - case 0: - case 1: attr = CLR_FATAL; - break; - case 2: attr = CLR_WARNING; - break; - case 3: attr = CLR_INFO; - break; - default: - attr = CLR_DEFAULT; - break; - } - - pj_term_set_color(attr); + pj_term_set_color(pj_log_get_color(level)); #endif } static void term_restore_color(void) { #if defined(PJ_TERM_HAS_COLOR) && PJ_TERM_HAS_COLOR != 0 - pj_term_set_color(CLR_DEFAULT); + /* Set terminal to its default color */ + pj_term_set_color(pj_log_get_color(77)); #endif } @@ -61,8 +43,12 @@ PJ_DEF(void) pj_log_write(int level, const char *buffer, int len) PJ_UNUSED_ARG(len); /* Copy to terminal/file. */ - term_set_color(level); - printf("%s", buffer); - term_restore_color(); + if (pj_log_get_decor() & PJ_LOG_HAS_COLOR) { + term_set_color(level); + printf("%s", buffer); + term_restore_color(); + } else { + printf("%s", buffer); + } } |