From 2cc6d0c9c263379c347d4facdfc08ba1ba72484d Mon Sep 17 00:00:00 2001 From: Krzysztof Chruscinski Date: Wed, 26 Sep 2018 14:18:55 +0200 Subject: [PATCH] logging: Add option to suppress timestamp printing in log_output Added flag in log_output module to add timestamp when message is formatted to a string. Updated existing backends. Signed-off-by: Krzysztof Chruscinski --- include/logging/log_output.h | 9 ++++++--- subsys/logging/log_backend_native_posix.c | 2 +- subsys/logging/log_backend_uart.c | 2 +- subsys/logging/log_output.c | 11 +++++++++-- subsys/shell/shell_log_backend.c | 4 +++- 5 files changed, 20 insertions(+), 8 deletions(-) diff --git a/include/logging/log_output.h b/include/logging/log_output.h index 464c7a7a1dc03d..507d580559f19b 100644 --- a/include/logging/log_output.h +++ b/include/logging/log_output.h @@ -22,13 +22,16 @@ extern "C" { /** @brief Flag forcing ANSI escape code colors, red (errors), yellow * (warnings). */ -#define LOG_OUTPUT_FLAG_COLORS (1 << 0) +#define LOG_OUTPUT_FLAG_COLORS BIT(0) + +/** @brief Flag forcing timestamp */ +#define LOG_OUTPUT_FLAG_TIMESTAMP BIT(1) /** @brief Flag forcing timestamp formatting. */ -#define LOG_OUTPUT_FLAG_FORMAT_TIMESTAMP (1 << 1) +#define LOG_OUTPUT_FLAG_FORMAT_TIMESTAMP BIT(2) /** @brief Flag forcing severity level prefix. */ -#define LOG_OUTPUT_FLAG_LEVEL (1 << 2) +#define LOG_OUTPUT_FLAG_LEVEL BIT(3) /** * @brief Prototype of the function processing output data. diff --git a/subsys/logging/log_backend_native_posix.c b/subsys/logging/log_backend_native_posix.c index 305d82d8aeff8d..69a87eabfd8bb5 100644 --- a/subsys/logging/log_backend_native_posix.c +++ b/subsys/logging/log_backend_native_posix.c @@ -61,7 +61,7 @@ static void put(const struct log_backend *const backend, { log_msg_get(msg); - u32_t flags = LOG_OUTPUT_FLAG_LEVEL; + u32_t flags = LOG_OUTPUT_FLAG_LEVEL | LOG_OUTPUT_FLAG_TIMESTAMP; if (IS_ENABLED(CONFIG_LOG_BACKEND_SHOW_COLOR)) { if (posix_trace_over_tty(0)) { diff --git a/subsys/logging/log_backend_uart.c b/subsys/logging/log_backend_uart.c index e06ece0446219b..cd7b0fb4309e8d 100644 --- a/subsys/logging/log_backend_uart.c +++ b/subsys/logging/log_backend_uart.c @@ -32,7 +32,7 @@ static void put(const struct log_backend *const backend, { log_msg_get(msg); - u32_t flags = LOG_OUTPUT_FLAG_LEVEL; + u32_t flags = LOG_OUTPUT_FLAG_LEVEL | LOG_OUTPUT_FLAG_TIMESTAMP; if (IS_ENABLED(CONFIG_LOG_BACKEND_SHOW_COLOR)) { flags |= LOG_OUTPUT_FLAG_COLORS; diff --git a/subsys/logging/log_output.c b/subsys/logging/log_output.c index 0ea4448c40cbd7..0dfe2929a2c345 100644 --- a/subsys/logging/log_output.c +++ b/subsys/logging/log_output.c @@ -364,11 +364,18 @@ static int prefix_print(struct log_msg *msg, int length = 0; if (!log_msg_is_raw_string(msg)) { - bool stamp_format = flags & LOG_OUTPUT_FLAG_FORMAT_TIMESTAMP; + bool stamp = flags & LOG_OUTPUT_FLAG_TIMESTAMP; bool colors_on = flags & LOG_OUTPUT_FLAG_COLORS; bool level_on = flags & LOG_OUTPUT_FLAG_LEVEL; - length += timestamp_print(msg, log_output, stamp_format); + if (stamp) { + bool stamp_format = + flags & LOG_OUTPUT_FLAG_FORMAT_TIMESTAMP; + + length += timestamp_print(msg, log_output, + stamp_format); + } + color_prefix(msg, log_output, colors_on); length += ids_print(msg, log_output, level_on); } diff --git a/subsys/shell/shell_log_backend.c b/subsys/shell/shell_log_backend.c index 73954b131a60ba..b17cc6bcbc3200 100644 --- a/subsys/shell/shell_log_backend.c +++ b/subsys/shell/shell_log_backend.c @@ -74,7 +74,9 @@ void shell_log_backend_disable(const struct shell_log_backend *backend) static void msg_process(const struct log_output *log_output, struct log_msg *msg) { - u32_t flags = LOG_OUTPUT_FLAG_LEVEL | LOG_OUTPUT_FLAG_FORMAT_TIMESTAMP; + u32_t flags = LOG_OUTPUT_FLAG_LEVEL | + LOG_OUTPUT_FLAG_TIMESTAMP | + LOG_OUTPUT_FLAG_FORMAT_TIMESTAMP; if (IS_ENABLED(CONFIG_SHELL_VT100_COLORS)) { flags |= LOG_OUTPUT_FLAG_COLORS;