使用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 环境运行测试
在这里插入图片描述
在这里插入图片描述
欢迎转载,请标明出处.

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值