gookit/slog-版本v0.5.2,轻巧,可配置,可扩展的记录库
#编程 #github #tooling #go

gookit/slogð轻巧,可配置的,可扩展的记录库。
支持多级,多输出和内置的多文件记录器,缓冲区,干净,旋转文件处理。

github https://github.com/gookit/slog

V0.5.2 ChangElog

完整的changelog https://github.com/gookit/slog/compare/v0.5.1...v0.5.2

特征

更新

新功能用法

自定义日志文件权限

通过配置hander.ConfigFilePerm设置创建的日志文件权限标志。

h1 := handler.MustFileHandler("/tmp/error.log",
    handler.WithLogLevels(slog.DangerLevels),
    handler.WithFilePerm(0644), // <- sets log file permissions
)

slog.PushHandler(h1)

使用ModeCreate模式拆分文件

关于RotateMode

  • 默认情况下,每次重命名处理旋转时,
  • ModeCreate仅通过拆分时间创建文件

设置RotateMode=ModeCreate允许仅通过拆分时间创建日志文件。

h1 := handler.MustRotateFile(
    "/tmp/error.log",
    rotatefile.EveryHour, // split by hour
    handler.WithLogLevels(slog.DangerLevels),
    handler.WithRotateMode(rotatefile.ModeCreate), // set RotateMode=ModeCreate
)

slog.PushHandler(h1)

在上面的示例中将logFile配置为/tmp/error.log。设置为ModeCreate模式时,实际上不会创建文件,
相反,它将根据实际的拆分时间创建:

/tmp/error.log.20230618_1500
/tmp/error.log.20230618_1600
/tmp/error.log.20230618_1700
...

提示ModeCreate模式可以应用于命令行工具应用程序。因为他们在每次执行后退出,所以ModeRename可能无法按时拆分文件。

使用ModeRename模式将具有以下效果:

/tmp/error.log # <- Logs are always written to this file
/tmp/error.log.20230618_1500
/tmp/error.log.20230618_1600
/tmp/error.log.20230618_1700
...

更多用法

更多用法请参见README