path: root/src
diff options
authorNeels Hofmeyr <neels@hofmeyr.de>2018-01-16 03:02:06 +0100
committerHarald Welte <laforge@gnumonks.org>2018-01-17 11:13:58 +0000
commite653472573323a9abf910555fe38eb34b1f42840 (patch)
tree0bfc3eb77a1a079d1a0499d4f50239fe2cc86804 /src
parentf3fa3694f596b50a5d85ae1e8b2a8627a3308a7e (diff)
logging: color the log category according to level
When log_set_use_color() is enabled, color the log category string according to the log level. The log line before and after the log category is printed in the category's configured color. ERROR and FATAL are red, NOTICE is yellow, INFO is green and DEBUG is blue. The default behavior remains unchanged; If color is enabled, the category string will now always be colored in the log level color, not the log category color, and will stand out from the rest of the line. Change-Id: I84f886ac880e9056a666bbb231ae06cbaaf65f44
Diffstat (limited to 'src')
1 files changed, 5 insertions, 1 deletions
diff --git a/src/logging.c b/src/logging.c
index c01294cb..a6aa7eba 100644
--- a/src/logging.c
+++ b/src/logging.c
@@ -366,7 +366,11 @@ static void _output(struct log_target *target, unsigned int subsys,
OSMO_SNPRINTF_RET(ret, rem, offset, len);
if (target->print_category) {
- ret = snprintf(buf + offset, rem, "%s ", log_category_name(subsys));
+ ret = snprintf(buf + offset, rem, "%s%s%s%s ",
+ target->use_color ? level_color(level) : "",
+ log_category_name(subsys),
+ target->use_color ? "\033[0;m" : "",
+ c_subsys ? c_subsys : "");
if (ret < 0)
goto err;
OSMO_SNPRINTF_RET(ret, rem, offset, len);