summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJean-Sébastien Pédron <jean-sebastien@rabbitmq.com>2019-03-13 16:58:22 +0100
committerJean-Sébastien Pédron <jean-sebastien@rabbitmq.com>2019-03-13 16:58:22 +0100
commita38d1166c2effec86906eb52e13d7280af3f78af (patch)
treedddd85ba949ea697b39a263ff45df1a4976765b1
parented70fa442346c5b026b559a6bfbb19a2120bd2e3 (diff)
downloadrabbitmq-server-git-a38d1166c2effec86906eb52e13d7280af3f78af.tar.gz
rabbit_lager: Multiply high watermark by 100 when log level is debug
Otherwise debug messages are quickly dropped by Lager.
-rw-r--r--src/rabbit_lager.erl33
1 files changed, 21 insertions, 12 deletions
diff --git a/src/rabbit_lager.erl b/src/rabbit_lager.erl
index bfdd26fee3..a132b92ccb 100644
--- a/src/rabbit_lager.erl
+++ b/src/rabbit_lager.erl
@@ -63,26 +63,35 @@ set_log_level(Level) ->
set_log_level(true, Level) ->
SinksAndHandlers = [{Sink, gen_event:which_handlers(Sink)} ||
Sink <- lager:list_all_sinks()],
- set_sink_log_level(SinksAndHandlers, Level);
+ DefaultHwm = application:get_env(lager, error_logger_hwm_original, 50),
+ Hwm = case Level of
+ debug -> DefaultHwm * 100;
+ _ -> DefaultHwm
+ end,
+ application:set_env(lager, error_logger_hwm, Hwm),
+ set_sink_log_level(SinksAndHandlers, Level, Hwm);
set_log_level(_, Level) ->
{error, {invalid_log_level, Level}}.
-set_sink_log_level([], _Level) ->
+set_sink_log_level([], _Level, _Hwm) ->
ok;
-set_sink_log_level([{Sink, Handlers}|Rest], Level) ->
- set_sink_handler_log_level(Sink, Handlers, Level),
- set_sink_log_level(Rest, Level).
+set_sink_log_level([{Sink, Handlers}|Rest], Level, Hwm) ->
+ set_sink_handler_log_level(Sink, Handlers, Level, Hwm),
+ set_sink_log_level(Rest, Level, Hwm).
-set_sink_handler_log_level(_Sink, [], _Level) ->
+set_sink_handler_log_level(_Sink, [], _Level, _Hwm) ->
ok;
-set_sink_handler_log_level(Sink, [Handler|Rest], Level) when is_atom(Handler) ->
+set_sink_handler_log_level(Sink, [Handler|Rest], Level, Hwm)
+ when is_atom(Handler) andalso is_integer(Hwm) ->
+ lager:set_loghwm(Sink, Handler, undefined, Hwm),
ok = lager:set_loglevel(Sink, Handler, undefined, Level),
- set_sink_handler_log_level(Sink, Rest, Level);
-set_sink_handler_log_level(Sink, [{Handler, Id}|Rest], Level) ->
+ set_sink_handler_log_level(Sink, Rest, Level, Hwm);
+set_sink_handler_log_level(Sink, [{Handler, Id}|Rest], Level, Hwm) ->
+ lager:set_loghwm(Sink, Handler, Id, Hwm),
ok = lager:set_loglevel(Sink, Handler, Id, Level),
- set_sink_handler_log_level(Sink, Rest, Level);
-set_sink_handler_log_level(Sink, [_|Rest], Level) ->
- set_sink_handler_log_level(Sink, Rest, Level).
+ set_sink_handler_log_level(Sink, Rest, Level, Hwm);
+set_sink_handler_log_level(Sink, [_|Rest], Level, Hwm) ->
+ set_sink_handler_log_level(Sink, Rest, Level, Hwm).
log_locations() ->
ensure_lager_configured(),