高性能日志库 go-logger 2.0.5 发布
前言: go-logger 是一个轻量级的日志库,提供了灵活的日志记录功能与文件备份功能,方便在应用程序中灵活地操作日志。
go-logger特点
- 日志级别设置:允许动态调整日志级别,以便在不同环境下控制日志的详细程度。
- 格式化输出:支持自定义日志的输出格式,包括时间戳、日志级别、日志位置 等元素。
- 文件数回滚:支持按照日志文件数自动文件回滚,并防止文件数过多。
- 文件压缩:支持压缩归档日志文件。
- 支持标准库log/slog日志文件管理:支持标准库文件切割,压缩等功能。
go-logger v2.0.5更新内容
- 增加formatter参数
- 增加Option参数
说明:
- 通过formatter设置,可以自由修改输出的日志格式,添加自定义的日志标识
- 如,默认日志输出:
[Debug]2024/06/05 11:07:22 logging_test.go:24 this is default logging - 通过修改formatter,相同的日志内容可以修改为类似如下的形式输出
this is default logging 2024/06/05 11:07:22 logging_test.go:24[Debug]this is default logging [Debug] 2024/06/05 11:07:22 logging_test.go:24[Debug]2024/06/05 11:07:22 logging_test.go:24 >>>>>>> this is default logging
- 通过设置Option参数,可以设置logger的所有参数,同时建议通过Option统一设置logger的系列参数,通过该方式设置更加易于维护。
- Option对象包含了日志级别,控制台日志,日志格式,输出格式formatter, 日志文件对象等参数。
formatter使用说明
设置日志标识输出格式 SetFormatter
SetFormatter("{level} {time} {file}:{message}\n")
默认格式:"{level} {time} {file}:{message}\n"
{level} 日志级别信息:如 [Debug],[Info],[Warn],[Error],[Fatal]
{time} 日志时间信息
{file} 文件位置行号信息
{message} 日志内容
说明:除了关键标识 {message} {time} {file} {level} 外,其他内容原样输出,如 | , 空格,换行 等
示例1:
SetFormatter("{message} | {level} {time} {file}\n")
Debug("11111111111111")
执行结果:
11111111111111|[Debug] 2024/06/05 11:07:22 logging_test.go:24
示例2
SetFormatter("{level}{time} {file} >>>> {message}\n")
Debug("2222222222222")
执行结果:
[Debug]2024/06/05 11:08:12 logging_test.go:24 >>>> 2222222222222
Option使用说明
建议通过option参数设置log的所有参数,更加易于维护
Level :日志级别
Console :控制台打印
Format :日志格式,默认:FORMAT_LEVELFLAG | FORMAT_SHORTFILENAME | FORMAT_DATE | FORMAT_TIME
Formatter :日志输出 默认:"{level} {time} {file}:{mesaage}\n"
FileOption :日志文件接口参数
FileOption介绍
FileOption为接口,有FileSizeMode与FileTimeMode两个实现对象
- FileTimeMode对象
Filename 日志文件路径
Timemode 按小时,天,月份:MODE_HOUR,MODE_DAY,MODE_MONTH
Maxbuckup 最多备份日志文件数
IsCompress 备份文件是否压缩
- FileSizeMode对象
Filename 日志文件路径
Maxsize 日志文件大小的最大值,超过则滚动备份
Maxbuckup 最多备份日志文件数
IsCompress 备份文件是否压缩
SetOption示例1
SetOption(&Option{Level: LEVEL_DEBUG, Console: false, FileOption: &FileTimeMode{Filename: "/usr/log/testlogtime.log", Maxbuckup: 10, IsCompress: true, Timemode: MODE_DAY}})
说明:以上option对象设置日志级别:LEVEL_DEBUG,控制台日志关闭,设置写日志文件,并按天(MODE_DAY)备份日志文件,保持最多10个备份文件,压缩切割的备份文件
SetOption示例2
SetOption(&Option{Level: LEVEL_DEBUG, Console: false, FileOption: &FileSizeMode{Filename: "testlog.log", Maxsize: 1<<30, Maxbuckup: 10, IsCompress: true}})
说明:以上option对象设置日志级别:LEVEL_DEBUG,控制台日志关闭,设置写日志文件,并按大小为 1G 切割日志文件,保持最多10个备份文件,压缩切割的备份文件