24
1
mirror of https://github.com/processone/ejabberd.git synced 2024-06-06 21:37:17 +02:00

Make config reload update new logger settings

This commit is contained in:
Paweł Chmielowski 2024-02-27 18:59:14 +01:00
parent 654601ff23
commit ad67710f7e

View File

@ -29,7 +29,7 @@
-export([start/0, get/0, set/1, get_log_path/0, flush/0]). -export([start/0, get/0, set/1, get_log_path/0, flush/0]).
-export([convert_loglevel/1, loglevels/0, set_modules_fully_logged/1]). -export([convert_loglevel/1, loglevels/0, set_modules_fully_logged/1]).
-ifndef(LAGER). -ifndef(LAGER).
-export([progress_filter/2]). -export([progress_filter/2, config_reloaded/0]).
-endif. -endif.
%% Deprecated functions %% Deprecated functions
-export([restart/0, reopen_log/0, rotate_log/0]). -export([restart/0, reopen_log/0, rotate_log/0]).
@ -266,6 +266,7 @@ start(Level) ->
EjabberdLog = get_log_path(), EjabberdLog = get_log_path(),
Dir = filename:dirname(EjabberdLog), Dir = filename:dirname(EjabberdLog),
ErrorLog = filename:join([Dir, "error.log"]), ErrorLog = filename:join([Dir, "error.log"]),
ejabberd_hooks:add(config_reloaded, ?MODULE, config_reloaded, 50),
LogRotateSize = get_integer_env(log_rotate_size, 10*1024*1024), LogRotateSize = get_integer_env(log_rotate_size, 10*1024*1024),
LogRotateCount = get_integer_env(log_rotate_count, 1), LogRotateCount = get_integer_env(log_rotate_count, 1),
LogBurstLimitWindowTime = get_integer_env(log_burst_limit_window_time, 1000), LogBurstLimitWindowTime = get_integer_env(log_burst_limit_window_time, 1000),
@ -330,6 +331,27 @@ get_default_handlerid() ->
restart() -> restart() ->
ok. ok.
-spec config_reloaded() -> ok.
config_reloaded() ->
LogRotateSize = ejabberd_option:log_rotate_size(),
LogRotateCount = ejabberd_option:log_rotate_count(),
LogBurstLimitWindowTime = ejabberd_option:log_burst_limit_window_time(),
LogBurstLimitCount = ejabberd_option:log_burst_limit_count(),
lists:foreach(
fun(Handler) ->
case logger:get_handler_config(Handler) of
{ok, #{config := Config}} ->
Config2 = Config#{
max_no_bytes => LogRotateSize,
max_no_files => LogRotateCount,
burst_limit_window_time => LogBurstLimitWindowTime,
burst_limit_max_count => LogBurstLimitCount},
logger:update_handler_config(Handler, config, Config2);
_ ->
ok
end
end, [ejabberd_log, error_log]).
progress_filter(#{level:=info,msg:={report,#{label:={_,progress}}}} = Event, _) -> progress_filter(#{level:=info,msg:={report,#{label:={_,progress}}}} = Event, _) ->
case get() of case get() of
debug -> debug ->