Add timers log level configuration

This commit is contained in:
Théophile Diot 2024-02-17 15:34:00 +01:00
parent a28426ebda
commit 71d253d84a
No known key found for this signature in database
GPG key ID: 248FEA4BAE400D06
2 changed files with 28 additions and 7 deletions

View file

@ -5,6 +5,7 @@ init_worker_by_lua_block {
local ready_work = function(premature)
-- Libs
local helpers = require "bunkerweb.helpers"
local utils = require "bunkerweb.utils"
-- Instantiate objects
local logger = require "bunkerweb.logger":new("INIT-WORKER")
@ -24,7 +25,7 @@ init_worker_by_lua_block {
local tostring = tostring
-- Don't go further we are in loading state
local is_loading, err = require "bunkerweb.utils".get_variable("IS_LOADING", false)
local is_loading, err = utils.get_variable("IS_LOADING", false)
if not is_loading then
logger:log(ERR, "utils.get_variable() failed : " .. err)
return
@ -34,6 +35,7 @@ init_worker_by_lua_block {
-- Recurrent timer
local recurrent_timer
local timers_log_level = ngx[utils.get_variable("TIMERS_LOG_LEVEL", false):upper()]
recurrent_timer = function(premature)
local worker_id = tostring(worker.id())
@ -44,7 +46,7 @@ init_worker_by_lua_block {
logger:log(WARN, "worker is exiting, disabling timer")
return
end
logger:log(INFO, "timer started")
logger:log(timers_log_level, "timer started")
-- Get plugins order
local order, err = datastore:get("plugins_order", true)
@ -54,14 +56,14 @@ init_worker_by_lua_block {
end
-- Call timer() methods
logger:log(INFO, "calling timer() methods of plugins ...")
logger:log(timers_log_level, "calling timer() methods of plugins ...")
for i, plugin_id in ipairs(order.timer) do
-- Require call
local plugin_lua, err = require_plugin(plugin_id)
if plugin_lua == false then
logger:log(ERR, err)
elseif plugin_lua == nil then
logger:log(INFO, err)
logger:log(timers_log_level, err)
else
-- Check if plugin has timer method
if plugin_lua.timer ~= nil then
@ -76,15 +78,15 @@ init_worker_by_lua_block {
elseif not ret.ret then
logger:log(ERR, plugin_id .. ":timer() call failed : " .. ret.msg)
else
logger:log(INFO, plugin_id .. ":timer() call successful : " .. ret.msg)
logger:log(timers_log_level, plugin_id .. ":timer() call successful : " .. ret.msg)
end
end
else
logger:log(INFO, "skipped execution of " .. plugin_id .. " because method timer() is not defined")
logger:log(timers_log_level, "skipped execution of " .. plugin_id .. " because method timer() is not defined")
end
end
end
logger:log(INFO, "called timer() methods of plugins")
logger:log(timers_log_level, "called timer() methods of plugins")
local hdl
hdl, err = timer_at(5, recurrent_timer)
if not hdl then

View file

@ -297,5 +297,24 @@
"label": "internal use draft",
"regex": "^(yes|no)$",
"type": "check"
},
"TIMERS_LOG_LEVEL": {
"context": "global",
"default": "debug",
"help": "Log level for timers.",
"id": "timers-log-level",
"label": "Timers log level",
"regex": "^(debug|info|notice|warn|error|crit|alert|emerg)$",
"type": "select",
"select": [
"debug",
"info",
"notice",
"warn",
"error",
"crit",
"alert",
"emerg"
]
}
}