Software /
code /
prosody-modules
Annotate
mod_log_rate/mod_log_rate.lua @ 5877:97c9b76867ca
mod_log_ringbuffer: Detach event handlers on logging reload (thanks Menel)
Otherwise the global event handlers accumulate, one added each time
logging is reoladed, and each invocation of the signal or event triggers
one dump of each created ringbuffer.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Sun, 03 Mar 2024 11:23:40 +0100 |
parent | 2243:f388747c53c7 |
rev | line source |
---|---|
1762
e6c7fe1be6cd
mod_log_rate: Log sink that reports the rate of log messages to statsmanager
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
1 module:set_global(); |
e6c7fe1be6cd
mod_log_rate: Log sink that reports the rate of log messages to statsmanager
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
2 |
e6c7fe1be6cd
mod_log_rate: Log sink that reports the rate of log messages to statsmanager
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
3 local function sink_maker(config) |
e6c7fe1be6cd
mod_log_rate: Log sink that reports the rate of log messages to statsmanager
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
4 local levels = { |
2243
f388747c53c7
mod_log_rate: Fix to actually use module methods
Kim Alvefur <zash@zash.se>
parents:
2202
diff
changeset
|
5 debug = module:measure("log.debug", "rate"); |
f388747c53c7
mod_log_rate: Fix to actually use module methods
Kim Alvefur <zash@zash.se>
parents:
2202
diff
changeset
|
6 info = module:measure("log.info", "rate"); |
f388747c53c7
mod_log_rate: Fix to actually use module methods
Kim Alvefur <zash@zash.se>
parents:
2202
diff
changeset
|
7 warn = module:measure("log.warn", "rate"); |
f388747c53c7
mod_log_rate: Fix to actually use module methods
Kim Alvefur <zash@zash.se>
parents:
2202
diff
changeset
|
8 error = module:measure("log.error", "rate"); |
1762
e6c7fe1be6cd
mod_log_rate: Log sink that reports the rate of log messages to statsmanager
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
9 }; |
e6c7fe1be6cd
mod_log_rate: Log sink that reports the rate of log messages to statsmanager
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
10 return function (_, level) |
e6c7fe1be6cd
mod_log_rate: Log sink that reports the rate of log messages to statsmanager
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
11 return levels[level](); |
e6c7fe1be6cd
mod_log_rate: Log sink that reports the rate of log messages to statsmanager
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
12 end |
e6c7fe1be6cd
mod_log_rate: Log sink that reports the rate of log messages to statsmanager
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
13 end |
e6c7fe1be6cd
mod_log_rate: Log sink that reports the rate of log messages to statsmanager
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
14 |
e6c7fe1be6cd
mod_log_rate: Log sink that reports the rate of log messages to statsmanager
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
15 require"core.loggingmanager".register_sink_type("measure", sink_maker); |