From e653472573323a9abf910555fe38eb34b1f42840 Mon Sep 17 00:00:00 2001 From: Neels Hofmeyr Date: Tue, 16 Jan 2018 03:02:06 +0100 Subject: 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 --- src/logging.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src') 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); -- cgit v1.2.3