mail archive of the barebox mailing list
 help / color / mirror / Atom feed
From: Eugen Wiens <eugen.wiens@jumo.net>
To: barebox@lists.infradead.org
Cc: Eugen Wiens <eugen.wiens@jumo.net>
Subject: [PATCH] console: added colored print out of log levels
Date: Wed, 21 Feb 2018 09:26:38 +0100	[thread overview]
Message-ID: <20180221082638.30664-1-eugen.wiens@jumo.net> (raw)

When the system is booting the warnings and errors are not be quickly discovered. With this improvement the errors are colored red, the warnings yellow and the notices blue.

Signed-off-by: Eugen Wiens <eugen.wiens@jumo.net>
---
 common/console_common.c | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/common/console_common.c b/common/console_common.c
index 0202345a6..6d857d064 100644
--- a/common/console_common.c
+++ b/common/console_common.c
@@ -33,6 +33,18 @@
 
 #ifndef CONFIG_CONSOLE_NONE
 
+#define MAX_CHARACTERS_COLORED_LOG_LEVEL	20
+#define MAX_LOG_LEVEL				MSG_NOTICE
+
+static const char colored_log_level[MAX_LOG_LEVEL+1][MAX_CHARACTERS_COLORED_LOG_LEVEL] = {
+	"\033[31mEMERG:\033[0m ",	/* color red for log level MSG_EMERG */
+	"\033[31mALERT:\033[0m ",	/* color red for log level MSG_ALERT */
+	"\033[31mCRITICAL:\033[0m ",	/* color red for log level MSG_CRIT */
+	"\033[31mERROR:\033[0m ",	/* color red for log level MSG_ERR */
+	"\033[33mWARNING:\033[0m ",	/* color yellow for log level MSG_WARNING */
+	"\033[34mNOTICE:\033[0m ",	/* color blue for log level MSG_NOTICE */
+};
+
 int barebox_loglevel = CONFIG_DEFAULT_LOGLEVEL;
 
 LIST_HEAD(barebox_logbuf);
@@ -102,6 +114,15 @@ nolog:
 	puts(str);
 }
 
+static void print_colored_log_level(const int level)
+{
+	if (console_allow_color()) {
+		if (level <= MAX_LOG_LEVEL) {
+			pr_puts(level, colored_log_level[level]);
+		}
+	}
+}
+
 int pr_print(int level, const char *fmt, ...)
 {
 	va_list args;
@@ -111,6 +132,8 @@ int pr_print(int level, const char *fmt, ...)
 	if (!IS_ENABLED(CONFIG_LOGBUF) && level > barebox_loglevel)
 		return 0;
 
+	print_colored_log_level(level);
+
 	va_start(args, fmt);
 	i = vsprintf(printbuffer, fmt, args);
 	va_end(args);
@@ -129,6 +152,8 @@ int dev_printf(int level, const struct device_d *dev, const char *format, ...)
 	if (!IS_ENABLED(CONFIG_LOGBUF) && level > barebox_loglevel)
 		return 0;
 
+	print_colored_log_level(level);
+
 	if (dev->driver && dev->driver->name)
 		ret += sprintf(printbuffer, "%s ", dev->driver->name);
 
-- 
2.16.1


Diese E-Mail kann vertrauliche und/oder rechtlich geschützte Informationen beinhalten und ist ausschließlich für die im Verteiler genannten Personen bestimmt. Das unerlaubte Kopieren sowie die unbefugte Weitergabe dieser Mail sind nicht gestattet. Bitte benachrichtigen Sie uns gegebenenfalls telefonisch oder mit Antwort-Mail, falls Sie nicht der richtige Adressat dieser E-Mail sind. Bitte löschen Sie diese Nachricht und alle Anhänge dazu unverzüglich. Falls nicht ausdrücklich vermerkt, ist diese E-Mail keine rechtlich bindende Vereinbarung. 

Kommanditgesellschaft: JUMO GmbH & Co. KG, Sitz: 36039 Fulda, Amtsgericht Fulda HRA 302, Persönlich haftende Gesellschafterin: M. K. JUCHHEIM GmbH, Sitz: 36039 Fulda, Amtsgericht Fulda HRB 17, Geschäftsführer: Dipl.-Ing. Bernhard Juchheim, Dipl.-Kfm. Michael Juchheim 
Ust.-Id.-Nr.: DE 112411234 
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

             reply	other threads:[~2018-02-21  8:27 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-02-21  8:26 Eugen Wiens [this message]
2018-02-22  7:56 ` Sascha Hauer
2018-02-22 15:16   ` Antwort: " Eugen.Wiens

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180221082638.30664-1-eugen.wiens@jumo.net \
    --to=eugen.wiens@jumo.net \
    --cc=barebox@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox