Mercurial > prosody-modules
view mod_log_rate/mod_log_rate.lua @ 5381:32a9817c7516
mod_firewall: Initialize compiled chunk just once for all handlers
This should fix a case where some stateful dependencies (such as throttles)
produce separate instances for every call to new_handler(), leading to
surprising behaviour (e.g. rules executed via JUMP CHAIN vs ::deliver would
have separate rate limits).
This also adds better error handling in case the compiled code fails to run
for some reason.
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Fri, 28 Apr 2023 13:27:06 +0100 |
parents | f388747c53c7 |
children |
line wrap: on
line source
module:set_global(); local function sink_maker(config) local levels = { debug = module:measure("log.debug", "rate"); info = module:measure("log.info", "rate"); warn = module:measure("log.warn", "rate"); error = module:measure("log.error", "rate"); }; return function (_, level) return levels[level](); end end require"core.loggingmanager".register_sink_type("measure", sink_maker);