这个log库是从github上的开源框架中看到的,发现其挺好用,就单独摘出来,作为单独的模块。
该作者的github地址为:https://github.com/xiaozia/metoo
输出的日志格式方便自定义,比如是下面这样:
[INFO] 2020-07-13 05:40:22 [main] [./demo/main.lua:10] start main info test...
[ERROR] 2020-07-13 05:40:22 [main] [./demo/main.lua:11] start main error test...
这个方便写流水日志
一、编译log.so
大家可以把这个开源库clone下来
https://github.com/xiaozia/metoo.git
把lua-log.c单独复制出来,在其相同目录下新建一个makfile文件:
(文章的最后,我会这个demo的文件的下载地址放上来)
CC ?= gcc
CFLAGS = -g -O2 -Wall -I$(LUA_INC)
SHARED := -fPIC --shared
TARGET = log.so
LUA_CLIB_PATH = ./
#引入lua头文件(根据你安装Lua库时的目录而定)
LUA_INC ?= /home/moon/Documents/skynet_project/3rd/lua
start: $(TARGET)
$(TARGET) : ./lua-log.c
$(CC) $(CFLAGS) $(SHARED) $^ -o $@
clean:
rm -fr $(TARGET)
$(LUA_CLIB_PATH) :
mkdir $(LUA_CLIB_PATH)
其中LUA_INC ?=
这里的路径可以填skynet中lua的路径
make
就会看到生成了一个log.so,如果有报错,或者想更详细了解如何用C语言作为skynet的模块,可以看这篇博客:
Skynet服务器框架(七) Lua中调用自定义C库
二、自定义的流水日志服务
log.lua
local skynet = require "skynet"
require "skynet.manager"
local logger = require "log.core"
local CMD = {
}
function CMD.start()
logger.init(tonumber(skynet.getenv("log_level")) or 0,
tonumber(skynet.getenv("log_rollsize")) or 1024,
tonumber

本文详细介绍了一种基于Skynet框架的日志模块实现方法,包括log.so编译、自定义日志服务、参数配置及测试过程。通过C语言编译log.so并结合Lua脚本,实现了灵活的日志级别控制、日志滚动、同步间隔设置等功能。
最低0.47元/天 解锁文章
1110

被折叠的 条评论
为什么被折叠?



