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
diff --git a/src/logging.c b/src/logging.c
index c01294c..a6aa7eb 100644
--- a/src/logging.c
+++ b/src/logging.c
@@ -366,7 +366,11 @@
 			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);