summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Klishin <michael@novemberain.com>2019-03-15 05:55:47 +0300
committerGitHub <noreply@github.com>2019-03-15 05:55:47 +0300
commit5b2e00032810c5e9f9707a41de6c6aa33a627630 (patch)
tree68d9244a382447573bb89ffbd69f9c8da62f2355
parent9bc3386e5816732ff88ef0613a12ba0bf0043516 (diff)
parent13f41179bdb3e67fa2491aa45dc1a2de4f74e717 (diff)
downloadrabbitmq-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.erl35
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,