summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
authorJean-Sébastien Pédron <jean-sebastien@rabbitmq.com>2020-07-06 14:20:39 +0200
committerJean-Sébastien Pédron <jean-sebastien@rabbitmq.com>2020-07-06 14:20:39 +0200
commit788edee3162f18acb2b2e2a0af900dbd0bc8db2b (patch)
tree80b0614ba938e52b03cd71c1b6ece03ebc904b3b /apps
parentcd2fee1a50fc4d2dd291fb82333f94a5d1c4c0ce (diff)
downloadrabbitmq-server-git-788edee3162f18acb2b2e2a0af900dbd0bc8db2b.tar.gz
rabbit_prelaunch_early_logging: Configure `rabbit_log` as a Logger handler
Currently, when the new Logger API exposed by Erlang is being used by an application, messages are lost once Lager is configured. That is because Lager does not know about Logger in this context. To fix this, `rabbit_log` is configured as a Logger handler which calls Lager API. This means that Logger messages are passed to Lager. Logger's log level is to set to pass all messages (including debug). Message routing/filtering is done by Lager instead. This change depends on new log/2 function being added to the `rabbit_log` module in rabbitmq-common.
Diffstat (limited to 'apps')
-rw-r--r--apps/rabbitmq_prelaunch/src/rabbit_prelaunch_early_logging.erl6
1 files changed, 6 insertions, 0 deletions
diff --git a/apps/rabbitmq_prelaunch/src/rabbit_prelaunch_early_logging.erl b/apps/rabbitmq_prelaunch/src/rabbit_prelaunch_early_logging.erl
index 431422276f..4e371c76ae 100644
--- a/apps/rabbitmq_prelaunch/src/rabbit_prelaunch_early_logging.erl
+++ b/apps/rabbitmq_prelaunch/src/rabbit_prelaunch_early_logging.erl
@@ -26,6 +26,7 @@ get_default_log_level() ->
do_setup_early_logging(#{log_levels := LogLevels} = Context,
LagerEventToStdout) ->
+ redirect_logger_messages_to_lager(),
Colored = use_colored_logging(Context),
application:set_env(lager, colored, Colored),
ConsoleBackend = lager_console_backend,
@@ -50,6 +51,11 @@ do_setup_early_logging(#{log_levels := LogLevels} = Context,
end, list_expected_sinks()),
ok.
+redirect_logger_messages_to_lager() ->
+ io:format(standard_error, "Configuring logger redirection~n", []),
+ ok = logger:add_handler(rabbit_log, rabbit_log, #{}),
+ ok = logger:set_primary_config(level, all).
+
use_colored_logging() ->
use_colored_logging(rabbit_prelaunch:get_context()).