[Skynet 基础】(二) 创建日志服务

Lua定制Skynet日志服务配置与使用示例
本文介绍了如何使用Lua定制Skynet的日志服务,包括基本配置和使用Lua脚本自定义日志级别、输出格式以及文件管理。

概述

日志模块主要用于格式化输出程序日志,方便后续从日志中定位程序运行过程中出现的问题。当然日志除了日志内容本身之外,还应该包括文件名、行号、时间戳、线程、协程号、日志级别等信息。在输出错误日志时,还应附加程序的函数调用栈信息,便于后续分析和排查问题。

日志系统一般分为 5 个等级

  • DEBUG :调试用的日志,线上运行时屏蔽不输出
  • INFO :普通日志,线上运行时输出,流程的关键步骤都需要有 INFO 日志
  • WARN :数据异常,但不影响正常流程的时候输出
  • ERROR :数据异常,且需要人工处理的时候输出
  • FATAL :致命错误, 将会导致应用程序的退出。

基本配置

-- config
logger = "./skynet.log" 			--日志输出的目录文件
logservice = "logger"				--默认为 “logger” 如果配置 "snlua "可使用Lua定制日志服务

使用Lua定制日志服务

: 修改自 Veinin/skynet-logger

-- config
logger = "logger" 					--日志输出的目录文件
logservice = "snlua"				--默认为 “logger” 如果配置 "snlua "可使用Lua定制日志服务
logpath = "./log/"					--日志存放的目录路径
loggroup   = "test"   -- 日志文件分组名
-- lualib/log.lua
local skynet = require "skynet"

local log = {
   
   }

local LOG_LEVEL = {
   
   
    DEBUG   = 1,
    INFO    = 2, 
    WARN    = 3, 
    ERROR   = 4, 
    FATAL   = 5
}

local OUT_PUT_LEVEL = LOG_LEVEL.DEBUG

local LOG_LEVEL_DESC = {
   
   
    [1] = "DEBUG",
    [2] = "INFO",
    [3] = "WARN",
    [4] = "ERROR",
    [5] = "FATAL",
}

local function format(fmt, ...)
    local ok, str = pcall(string.format, fmt, ...)
    if ok then
        return str
    else
        return "error format : " .. fmt
    end
end

local function send_log(level, ...)
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值