summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJean-Sébastien Pédron <jean-sebastien@rabbitmq.com>2021-08-11 15:23:29 +0200
committerJean-Sébastien Pédron <jean-sebastien@rabbitmq.com>2021-08-11 15:32:39 +0200
commit2e955b0a5098aca35b0092f771ac80c0fe3efcac (patch)
tree573c2a648e08fdbb6200d0c15390194542870b99
parent62d82e166042cb349c1931d6df59a8554ca21324 (diff)
downloadrabbitmq-server-git-2e955b0a5098aca35b0092f771ac80c0fe3efcac.tar.gz
Logging: Disable burst limit if the log level is set to `debug`
Otherwise, messages are being dropped, in particular during RabbitMQ startup because of the amount of debug messages logged in that phase. Burst limit is enabled again if the log level is set to `info` or higher.
-rw-r--r--deps/rabbit/src/rabbit_prelaunch_logging.erl22
1 files changed, 19 insertions, 3 deletions
diff --git a/deps/rabbit/src/rabbit_prelaunch_logging.erl b/deps/rabbit/src/rabbit_prelaunch_logging.erl
index 0dae47adde..c67b81cdcb 100644
--- a/deps/rabbit/src/rabbit_prelaunch_logging.erl
+++ b/deps/rabbit/src/rabbit_prelaunch_logging.erl
@@ -268,7 +268,7 @@ set_log_level(Level) ->
%% of them to the new level.
lists:foreach(
fun
- (#{id := Id, filters := Filters}) ->
+ (#{id := Id, filters := Filters, config := Config}) ->
?LOG_DEBUG(
"Logging: changing '~s' handler log level to ~s",
[Id, Level],
@@ -302,14 +302,18 @@ set_log_level(Level) ->
(Filter) ->
Filter
end, Filters),
+ Config1 = adjust_burst_limit(Config, Level),
logger:set_handler_config(Id, filters, Filters1),
+ logger:set_handler_config(Id, config, Config1),
logger:set_handler_config(Id, level, Level),
ok;
- (#{id := Id}) ->
+ (#{id := Id, config := Config}) ->
?LOG_DEBUG(
"Logging: changing '~s' handler log level to ~s",
[Id, Level],
#{domain => ?RMQLOG_DOMAIN_GLOBAL}),
+ Config1 = adjust_burst_limit(Config, Level),
+ logger:set_handler_config(Id, config, Config1),
logger:set_handler_config(Id, level, Level),
ok
end, logger:get_handler_config()),
@@ -1424,9 +1428,21 @@ adjust_log_levels(Handlers) ->
fun(_, LvlA, LvlB) ->
get_less_severe_level(LvlA, LvlB)
end, GeneralLevel, FilterConfig),
- Handler#{level => Level}
+ Handler1 = Handler#{level => Level},
+ adjust_burst_limit(Handler1)
end, Handlers).
+adjust_burst_limit(#{config := #{burst_limit_enable := _}} = Handler) ->
+ Handler;
+adjust_burst_limit(#{level := debug, config := Config} = Handler) ->
+ Config1 = Config#{burst_limit_enable => false},
+ Handler#{config => Config1};
+adjust_burst_limit(Handler) when is_map(Handler) ->
+ Handler.
+
+adjust_burst_limit(Config, Level) ->
+ Config#{burst_limit_enable => Level =/= debug}.
+
-spec assign_handler_ids(#{handler_key() => logger:handler_config()}) ->
[logger:handler_config()].