summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJean-Sébastien Pédron <jean-sebastien@rabbitmq.com>2021-08-12 18:29:59 +0200
committerJean-Sébastien Pédron <jean-sebastien@rabbitmq.com>2021-08-24 18:35:39 +0200
commit54c61108f214dd0e03527554ce7794eb446e02e8 (patch)
tree9ea005552425f591374734054ee54fa3d7e3aad5
parenta809e55dbb65be2fef6f9193ffb5176a956f703d (diff)
downloadrabbitmq-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.erl14
-rw-r--r--deps/rabbit/src/rabbit_prelaunch_logging.erl2
-rw-r--r--deps/rabbit_common/src/rabbit_env.erl6
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 ->