Files
Endfield-Data/LuaScripts/Common/Core/Logger.lua
2026-01-31 21:42:01 +07:00

78 lines
2.1 KiB
Lua

local logger = {}
local DLogger = CS.Beyond.DLogger
local Log = DLogger.Log
local LogWarning = DLogger.LogWarning
local LogError = DLogger.LogError
local LogCritical = DLogger.LogCritical
local LogImportant = DLogger.LogImportant
local defaultChannel = CS.Beyond.ELogChannel.UI
local channelType = typeof(CS.Beyond.ELogChannel)
_G.__LogError__ = LogError
local isInfoOrWarnEnabled = DEVELOPMENT_BUILD or UNITY_EDITOR
local getStr = function(...)
local count = select('#', ...)
local args = {...}
local newArgs = {}
for k = 1, count do
v = args[k]
if type(v) == "table" then
v = realInspect(v)
end
newArgs[k] = v == nil and "nil" or tostring(v)
end
return table.concat(newArgs, "\t")
end
function getLogChannelAndStr(channel, ...)
if channel and type(channel) == "userdata" and channel:GetType() == channelType then
return channel, getStr(...)
else
return defaultChannel, getStr(channel, ...)
end
end
function logger.editorInfo(channel, ...)
if UNITY_EDITOR then
local logChannel, str = getLogChannelAndStr(channel, ...)
Log(logChannel, str)
end
end
function logger.info(channel, ...)
if isInfoOrWarnEnabled then
local logChannel, str = getLogChannelAndStr(channel, ...)
Log(logChannel, str)
end
end
function logger.important(enableLogType, channel, ...)
local logChannel, str = getLogChannelAndStr(channel, ...)
LogImportant(enableLogType, logChannel, str)
end
function logger.warn(channel, ...)
if isInfoOrWarnEnabled then
local logChannel, str = getLogChannelAndStr(channel, ...)
LogWarning(logChannel, str)
end
end
function logger.error(channel, ...)
local logChannel, str = getLogChannelAndStr(channel, ...)
str = string.format("%s\n%s", str, debug.traceback(nil, 2))
LogError(logChannel, str)
end
function logger.critical(channel, ...)
local logChannel, str = getLogChannelAndStr(channel, ...)
str = string.format("%s\n%s", str, debug.traceback(nil, 2))
LogCritical(logChannel, str)
end
return logger