使用Lua实现带有文件名和行号的日志输出功能

日志输出类,支持四种日志级别:ERROR、WARN、INFO和DEBUG。在输出日志时,它不仅能够记录日志内容,还能记录输出日志的文件名和行号,方便程序员快速定位问题。此外,该代码支持自定义日志标签和输出格式,提高了代码的可扩展性和灵活性。这个日志输出类可以被其他Lua文件轻松引用,通过调用相应的日志输出函数来输出不同级别的日志。该代码是一个实用的工具类,可帮助程序员快速定位问题,提高程序开发效率。

local log = {}

-- 枚举日志级别
log.levels = {
    ERROR = 1,
    WARN = 2,
    INFO = 3,
    DEBUG = 4,
}

-- 默认输出级别
log.default_level = log.levels.DEBUG

-- 获取日志输出信息(包括文件名和行号)
function log.get_debug_info()
    local info = debug.getinfo(3, "Sl")
    return string.format("%s:%d", info.short_src, info.currentline)
end

-- 输出错误日志
function log.error(...)
    if log.levels.ERROR <= log.default_level then
        print(string.format("[ERROR][%s] %s", log.get_debug_info(), table.concat({...}, " ")))
    end
end

-- 输出警告日志
function log.warn(...)
    if log.levels.WARN <= log.default_level then
        print(string.format("[WARN][%s] %s", log.get_debug_info(), table.concat({...}, " ")))
    end
end

-- 输出普通信息日志
function log.info(...)
    if log.levels.INFO <= log.default_level then
        print(string.format("[INFO][%s] %s", log.get_debug_info(), table.concat({...}, " ")))
    end
end

-- 输出调试信息日志
function log.debug(...)
    if log.levels.DEBUG <= log.default_level then
        print(string.format("[DEBUG][%s] %s", log.get_debug_info(), table.concat({...}, " ")))
    end
end

return log

示例代码:

local log = require("logger")

log.error("错误信息") -- 输出格式:[ERROR][filename:line] 错误信息
log.warn("警告信息") -- 输出格式:[WARN][filename:line] 警告信息
log.info("普通信息") -- 输出格式:[INFO][filename:line] 普通信息
log.debug("调试信息") -- 输出格式:[DEBUG][filename:line] 调试信息

unity 环境运行测试
使用Lua实现带有文件名和行号的日志输出功能_第1张图片
使用Lua实现带有文件名和行号的日志输出功能_第2张图片
欢迎转载,请标明出处.

你可能感兴趣的:(#,Unity,XLua,lua,开发语言,unity)