|
16 | 16 |
|
17 | 17 | -module(rabbit_lager).
|
18 | 18 |
|
19 |
| --include("rabbit_log.hrl"). |
| 19 | +-include_lib("rabbit_common/include/rabbit_log.hrl"). |
20 | 20 |
|
21 | 21 | %% API
|
22 | 22 | -export([start_logger/0, log_locations/0, fold_sinks/2,
|
|
26 | 26 | -export([configure_lager/0]).
|
27 | 27 |
|
28 | 28 | start_logger() ->
|
| 29 | + ok = maybe_remove_logger_handler(), |
29 | 30 | ok = app_utils:stop_applications([lager, syslog]),
|
30 |
| - ensure_lager_configured(), |
31 |
| - lager:start(), |
| 31 | + ok = ensure_lager_configured(), |
| 32 | + ok = app_utils:start_applications([lager]), |
32 | 33 | fold_sinks(
|
33 | 34 | fun
|
34 | 35 | (_, [], Acc) ->
|
@@ -176,6 +177,10 @@ lager_configured() ->
|
176 | 177 | configure_lager() ->
|
177 | 178 | ok = app_utils:load_applications([lager]),
|
178 | 179 | %% Turn off reformatting for error_logger messages
|
| 180 | + case application:get_env(lager, error_logger_redirect) of |
| 181 | + undefined -> application:set_env(lager, error_logger_redirect, true); |
| 182 | + _ -> ok |
| 183 | + end, |
179 | 184 | case application:get_env(lager, error_logger_format_raw) of
|
180 | 185 | undefined -> application:set_env(lager, error_logger_format_raw, true);
|
181 | 186 | _ -> ok
|
@@ -348,7 +353,6 @@ generate_handler(syslog_lager_backend, HandlerConfig) ->
|
348 | 353 | DefaultConfigVal = default_config_value(level),
|
349 | 354 | Level = proplists:get_value(level, HandlerConfig, DefaultConfigVal),
|
350 | 355 | ok = configure_syslog(),
|
351 |
| - ok = app_utils:start_applications([syslog]), |
352 | 356 | [{syslog_lager_backend,
|
353 | 357 | [Level,
|
354 | 358 | {},
|
@@ -575,3 +579,17 @@ list_expected_sinks() ->
|
575 | 579 | ok = application:set_env(rabbit, lager_extra_sinks, List),
|
576 | 580 | List
|
577 | 581 | end.
|
| 582 | + |
| 583 | +maybe_remove_logger_handler() -> |
| 584 | + M = logger, |
| 585 | + F = remove_handler, |
| 586 | + try |
| 587 | + ok = erlang:apply(M, F, [default]) |
| 588 | + catch |
| 589 | + error:undef -> |
| 590 | + % OK since the logger module only exists in OTP 21.1 or later |
| 591 | + ok; |
| 592 | + Err:Reason -> |
| 593 | + error_logger:error_msg("calling ~p:~p failed: ~p:~p~n", |
| 594 | + [M, F, Err, Reason]) |
| 595 | + end. |
0 commit comments