diff options
| author | Michael Klishin <michael@novemberain.com> | 2019-03-15 05:55:47 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-03-15 05:55:47 +0300 |
| commit | 5b2e00032810c5e9f9707a41de6c6aa33a627630 (patch) | |
| tree | 68d9244a382447573bb89ffbd69f9c8da62f2355 | |
| parent | 9bc3386e5816732ff88ef0613a12ba0bf0043516 (diff) | |
| parent | 13f41179bdb3e67fa2491aa45dc1a2de4f74e717 (diff) | |
| download | rabbitmq-server-git-5b2e00032810c5e9f9707a41de6c6aa33a627630.tar.gz | |
Merge pull request #1912 from rabbitmq/bump-lager-high-watermark-if-level-is-debug
rabbit_lager: Multiply high watermark by 100 when log level is debug
| -rw-r--r-- | src/rabbit_lager.erl | 35 |
1 files changed, 22 insertions, 13 deletions
diff --git a/src/rabbit_lager.erl b/src/rabbit_lager.erl index bfdd26fee3..45f2cfbc40 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(), @@ -293,7 +302,7 @@ configure_lager() -> {ok, Val} when is_integer(Val) andalso Val < 1000 -> ok = application:set_env(lager, error_logger_hwm, 1000), ok = application:set_env(lager, error_logger_hwm_original, Val); - {ok, Val} -> + {ok, Val} when is_integer(Val) -> ok = application:set_env(lager, error_logger_hwm_original, Val), ok end, |
