diff options
author | Jean-Sébastien Pédron <jean-sebastien@rabbitmq.com> | 2021-08-12 18:29:59 +0200 |
---|---|---|
committer | Jean-Sébastien Pédron <jean-sebastien@rabbitmq.com> | 2021-08-24 18:35:39 +0200 |
commit | 54c61108f214dd0e03527554ce7794eb446e02e8 (patch) | |
tree | 9ea005552425f591374734054ee54fa3d7e3aad5 | |
parent | a809e55dbb65be2fef6f9193ffb5176a956f703d (diff) | |
download | rabbitmq-server-git-enable-single_line-logging-from-env-var.tar.gz |
Logging: Add `single_line` flag support to $RABBITMQ_LOGenable-single_line-logging-from-env-var
A user could already enable single-line logging (the `single_line`
option of `logger_formatter` or RabbitMQ internal formatters) from the
configuration file. For example:
log.console.formatter.single_line = on
With this patch, the option can be enabled from the `$RABBITMQ_LOG`
environment variable as well:
make run-broker RABBITMQ_LOG=+single_line
-rw-r--r-- | deps/rabbit/apps/rabbitmq_prelaunch/src/rabbit_prelaunch_early_logging.erl | 14 | ||||
-rw-r--r-- | deps/rabbit/src/rabbit_prelaunch_logging.erl | 2 | ||||
-rw-r--r-- | deps/rabbit_common/src/rabbit_env.erl | 6 |
3 files changed, 18 insertions, 4 deletions
diff --git a/deps/rabbit/apps/rabbitmq_prelaunch/src/rabbit_prelaunch_early_logging.erl b/deps/rabbit/apps/rabbitmq_prelaunch/src/rabbit_prelaunch_early_logging.erl index 860a1e141b..9568abab14 100644 --- a/deps/rabbit/apps/rabbitmq_prelaunch/src/rabbit_prelaunch_early_logging.erl +++ b/deps/rabbit/apps/rabbitmq_prelaunch/src/rabbit_prelaunch_early_logging.erl @@ -111,11 +111,14 @@ main_handler_config(Context) -> #{filter_default => log, formatter => default_formatter(Context)}. -default_formatter(#{log_levels := #{json := true}}) -> - {rabbit_logger_json_fmt, #{}}; +default_formatter(#{log_levels := #{json := true}} = Context) -> + SingleLine = format_msgs_as_single_lines(Context), + {rabbit_logger_json_fmt, #{single_line => SingleLine}}; default_formatter(Context) -> Color = use_colored_logging(Context), - {rabbit_logger_text_fmt, #{use_colors => Color}}. + SingleLine = format_msgs_as_single_lines(Context), + {rabbit_logger_text_fmt, #{use_colors => Color, + single_line => SingleLine}}. default_console_formatter(Context) -> default_formatter(Context). @@ -143,6 +146,11 @@ use_colored_logging(#{log_levels := #{color := true}, use_colored_logging(_) -> false. +format_msgs_as_single_lines(#{log_levels := #{single_line := true}}) -> + true; +format_msgs_as_single_lines(_) -> + false. + enable_quick_dbg(#{dbg_mods := []}) -> ok; enable_quick_dbg(#{dbg_output := Output, dbg_mods := Mods}) -> diff --git a/deps/rabbit/src/rabbit_prelaunch_logging.erl b/deps/rabbit/src/rabbit_prelaunch_logging.erl index 1582f593c0..0de59d32f3 100644 --- a/deps/rabbit/src/rabbit_prelaunch_logging.erl +++ b/deps/rabbit/src/rabbit_prelaunch_logging.erl @@ -1094,7 +1094,7 @@ apply_log_levels_from_env(LogConfig, #{log_levels := LogLevels}) maps:fold( fun (_, Value, LC) when is_boolean(Value) -> - %% Ignore the '+color' and '+json' flags. + %% Ignore flags such as '+color' and '+json'. LC; (global, Level, #{global := GlobalConfig} = LC) -> GlobalConfig1 = GlobalConfig#{level => Level}, diff --git a/deps/rabbit_common/src/rabbit_env.erl b/deps/rabbit_common/src/rabbit_env.erl index 39c9effae2..d6f60f9ae6 100644 --- a/deps/rabbit_common/src/rabbit_env.erl +++ b/deps/rabbit_common/src/rabbit_env.erl @@ -657,6 +657,12 @@ parse_log_levels([CategoryValue | Rest], Result) -> ["-json"] -> Result1 = Result#{json => false}, parse_log_levels(Rest, Result1); + ["+single_line"] -> + Result1 = Result#{single_line => true}, + parse_log_levels(Rest, Result1); + ["-single_line"] -> + Result1 = Result#{single_line => false}, + parse_log_levels(Rest, Result1); [CategoryOrLevel] -> case parse_level(CategoryOrLevel) of undefined -> |