diff -r 133b23758cf6 -r 97c9b76867ca mod_log_ringbuffer/mod_log_ringbuffer.lua --- a/mod_log_ringbuffer/mod_log_ringbuffer.lua Sat Mar 02 15:11:20 2024 +0100 +++ b/mod_log_ringbuffer/mod_log_ringbuffer.lua Sun Mar 03 11:23:40 2024 +0100 @@ -90,6 +90,8 @@ return write, dump; end +local event_hooks = {}; + local function ringbuffer_log_sink_maker(sink_config) local write, dump = new_buffer(sink_config); @@ -107,8 +109,10 @@ if sink_config.signal then module:hook_global("signal/"..sink_config.signal, handler); + event_hooks[handler] = "signal/"..sink_config.signal; elseif sink_config.event then module:hook_global(sink_config.event, handler); + event_hooks[handler] = sink_config.event; end return function (name, level, message, ...) @@ -117,4 +121,11 @@ end; end +module:hook_global("reopen-log-files", function() + for handler, event_name in pairs(event_hooks) do + module:unhook_object_event(prosody.events, event_name, handler); + event_hooks[handler] = nil; + end +end, 1); + loggingmanager.register_sink_type("ringbuffer", ringbuffer_log_sink_maker);