logging: store level as number and allow abbrev

This commit is contained in:
NullBite 2023-07-02 02:04:22 -04:00
parent 0d06fb0c3c
commit 7fdd8a5998
Signed by: nullbite
GPG Key ID: 6C4D545385D4925A

View File

@ -9,15 +9,25 @@ local loglevels={
["TRACE"]=6 ["TRACE"]=6
} }
local loglevels_index={} local loglevels_index={}
local loglevels_abbrev={}
for k, v in pairs(loglevels) do for k, v in pairs(loglevels) do
loglevels_index[v]=k loglevels_index[v]=k
loglevels_abbrev[k:sub(1,1)]=v
end end
-- default log level local loglevel
local loglevel="INFO"
---@deprecated use loglevel int
local loglevel_str="INFO"
---@param level string|integer
function logging.set(level) function logging.set(level)
loglevel=loglevels[level] and level or loglevel -- +---we can do this
-- | becasue each one has
-- v a unique letter
loglevel=loglevels[level] or loglevels_abbrev[tostring(level):sub(1,1):upper()] or
((level >=0 and level <=6) and level) or loglevel
end end
---deprecated wrapper for logging.set, it is intentionally a wrapper instead of ---deprecated wrapper for logging.set, it is intentionally a wrapper instead of
@ -27,10 +37,11 @@ function logging.setLogLevel(level)
return logging.set(level) return logging.set(level)
end end
-- default log level
logging.set("INFO") logging.set("INFO")
local function printLog(severity, ...) local function printLog(severity, ...)
if (loglevels[loglevel]) >= severity then if (loglevel) >= severity then
log("[" .. loglevels_index[severity] .. "] ", ...) log("[" .. loglevels_index[severity] .. "] ", ...)
end end
end end