From e0b7acc5ace72dc34561c635d32fb2085765c8ca Mon Sep 17 00:00:00 2001 From: dimitri staessens Date: Wed, 23 Mar 2016 23:18:56 +0100 Subject: lib: updated log message formatting logs will now display as follows: (EE): error, in red (WW): warning, in yellow (II): info, in green (NI): missing code, in blue (DB): debug messages in white --- include/ouroboros/logs.h | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/include/ouroboros/logs.h b/include/ouroboros/logs.h index 6f9986dc..344a7ddc 100644 --- a/include/ouroboros/logs.h +++ b/include/ouroboros/logs.h @@ -30,21 +30,33 @@ #error You must define OUROBOROS_PREFIX before including this file #endif -#define __LOG(PFX, LVL, FMT, ARGS...) \ - do { printf(PFX "(" LVL "): " FMT "\n", ##ARGS); } while (0) - -#define LOG_ERR(FMT, ARGS...) __LOG(OUROBOROS_PREFIX, "ERR", FMT, ##ARGS) -#define LOG_WARN(FMT, ARGS...) __LOG(OUROBOROS_PREFIX, "WARN", FMT, ##ARGS) -#define LOG_INFO(FMT, ARGS...) __LOG(OUROBOROS_PREFIX, "INFO", FMT, ##ARGS) +#define ANSI_COLOR_RED "\x1b[31m" +#define ANSI_COLOR_GREEN "\x1b[32m" +#define ANSI_COLOR_YELLOW "\x1b[33m" +#define ANSI_COLOR_BLUE "\x1b[34m" +#define ANSI_COLOR_RESET "\x1b[0m" + +#define __LOG(CLR, PFX, LVL, FMT, ARGS...) \ + do { printf(CLR PFX "(" LVL "): " FMT ANSI_COLOR_RESET "\n", ##ARGS); }\ + while (0) + +#define LOG_ERR(FMT, ARGS...) __LOG(ANSI_COLOR_RED, OUROBOROS_PREFIX, \ + "EE", FMT, ##ARGS) +#define LOG_WARN(FMT, ARGS...) __LOG(ANSI_COLOR_YELLOW, OUROBOROS_PREFIX, \ + "WW", FMT, ##ARGS) +#define LOG_INFO(FMT, ARGS...) __LOG(ANSI_COLOR_GREEN, OUROBOROS_PREFIX, \ + "II", FMT, ##ARGS) +#define LOG_NI(FMT, ARGS...) __LOG(ANSI_COLOR_BLUE, OUROBOROS_PREFIX, \ + "NI", FMT, ##ARGS) #ifdef CONFIG_OUROBOROS_DEBUG -#define LOG_DBG(FMT, ARGS...) __LOG(OUROBOROS_PREFIX, "DBG", FMT, ##ARGS) +#define LOG_DBG(FMT, ARGS...) __LOG("", OUROBOROS_PREFIX, "DB", FMT, ##ARGS) #else #define LOG_DBG(FMT, ARGS...) do { } while (0) #endif #define LOG_DBGF(FMT, ARGS...) LOG_DBG("%s: " FMT, __FUNCTION__, ##ARGS) -#define LOG_MISSING LOG_ERR("Missing code in %s:%d",__FILE__, __LINE__) +#define LOG_MISSING LOG_NI("Missing code in %s:%d",__FILE__, __LINE__) #endif -- cgit v1.2.3