summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJean-Sébastien Pédron <jean-sebastien@rabbitmq.com>2019-03-18 11:37:05 +0100
committerJean-Sébastien Pédron <jean-sebastien@rabbitmq.com>2019-03-18 11:37:05 +0100
commit6653a0cfbf9d5f99cd3e8e1ac865494279dd577b (patch)
tree043458b3a463e40e51172d62ab0e6268e5ca8133
parenta58bc89f73c9af27fda43adcb2639b1f474b5aa5 (diff)
downloadrabbitmq-server-git-6653a0cfbf9d5f99cd3e8e1ac865494279dd577b.tar.gz
rabbit_lager: Multiply high watermark on startup as well
... if the log level is set to `debug` in the configuration. This allows us to revert commit rabbitmq/rabbitmq-common@c04944235b. References #1912.
-rw-r--r--src/rabbit_lager.erl27
1 files changed, 26 insertions, 1 deletions
diff --git a/src/rabbit_lager.erl b/src/rabbit_lager.erl
index 45f2cfbc40..11269d157d 100644
--- a/src/rabbit_lager.erl
+++ b/src/rabbit_lager.erl
@@ -43,7 +43,11 @@ start_logger() ->
broker_is_started() ->
{ok, HwmCurrent} = application:get_env(lager, error_logger_hwm),
- {ok, HwmOrig} = application:get_env(lager, error_logger_hwm_original),
+ {ok, HwmOrig0} = application:get_env(lager, error_logger_hwm_original),
+ HwmOrig = case get_most_verbose_log_level() of
+ debug -> HwmOrig0 * 100;
+ _ -> HwmOrig0
+ end,
case HwmOrig =:= HwmCurrent of
false ->
ok = application:set_env(lager, error_logger_hwm, HwmOrig),
@@ -603,3 +607,24 @@ maybe_remove_logger_handler() ->
error_logger:error_msg("calling ~p:~p failed: ~p:~p~n",
[M, F, Err, Reason])
end.
+
+get_most_verbose_log_level() ->
+ {ok, HandlersA} = application:get_env(lager, handlers),
+ {ok, ExtraSinks} = application:get_env(lager, extra_sinks),
+ HandlersB = lists:append(
+ [H || {_, Keys} <- ExtraSinks,
+ {handlers, H} <- Keys]),
+ get_most_verbose_log_level(HandlersA ++ HandlersB,
+ lager_util:level_to_num(none)).
+
+get_most_verbose_log_level([{_, Props} | Rest], MostVerbose) ->
+ LogLevel = proplists:get_value(level, Props, info),
+ LogLevelNum = lager_util:level_to_num(LogLevel),
+ case LogLevelNum > MostVerbose of
+ true ->
+ get_most_verbose_log_level(Rest, LogLevelNum);
+ false ->
+ get_most_verbose_log_level(Rest, MostVerbose)
+ end;
+get_most_verbose_log_level([], MostVerbose) ->
+ lager_util:num_to_level(MostVerbose).