Files
spearhead/src/classes/util/Logger.lua
T
dutchie031 63a1ea44db
Publish Release / build (push) Successful in 39s
Fix/ pre activation (#28)
fixes: #8Reviewed-on: #28

Co-authored-by: dutchie031 <timrorije@gmail.com>
2026-08-18 12:50:12 +00:00

87 lines
2.3 KiB
Lua

local Util = require("classes.util.Util")
local SpearheadConfig = require("classes.configuration.GlobalConfig")
---@type LogLevel
local defaultLogLevel = "INFO"
if SpearheadConfig then
if SpearheadConfig:isDebugEnabled() then
defaultLogLevel = "DEBUG"
end
end
--- @class Logger
--- @field LoggerName string the name of the logger
--- @field LogLevel string the log level of the logger
local LOGGER = {}
do
local PreFix = "Spearhead"
---comment
---@param logger_name any
---@param logLevel LogLevel? override the default log level
---@return Logger
function LOGGER.new(logger_name, logLevel)
LOGGER.__index = LOGGER
local self = setmetatable({}, LOGGER)
self.LoggerName = logger_name or "(loggername not set)"
self.LogLevel = logLevel or defaultLogLevel
return self
end
---@param message any the message
function LOGGER:info(message)
if message == nil then
return
end
message = Util.toString(message)
if self.LogLevel == "INFO" or self.LogLevel == "DEBUG" then
env.info("[" .. PreFix .. "]" .. "[" .. self.LoggerName .. "] " .. message)
end
end
---comment
---@param message string
function LOGGER:warn(message)
if message == nil then
return
end
message = Util.toString(message)
if self.LogLevel == "INFO" or self.LogLevel == "DEBUG" or self.LogLevel == "WARN" then
env.warning("[" .. PreFix .. "]" .. "[" .. self.LoggerName .. "] " .. message)
end
end
---@param message any -- the message
function LOGGER:error(message)
if message == nil then
return
end
message = Util.toString(message)
if self.LogLevel == "INFO" or self.LogLevel == "DEBUG" or self.LogLevel == "WARN" or self.LogLevel == "ERROR" then
env.error("[" .. PreFix .. "]" .. "[" .. self.LoggerName .. "] " .. message)
end
end
---@param message any the message
function LOGGER:debug(message)
if message == nil then
return
end
message = Util.toString(message)
if self.LogLevel == "DEBUG" then
env.info("[" .. PreFix .. "]" .. "[" .. self.LoggerName .. "][DEBUG] " .. message)
end
end
end
return LOGGER