gookit/slog - 发布 v0.5.2 版本, 易于使用的,可配置、可扩展的 Go 日志库

gookit/slog 📑 一个易于使用的,轻量级、可配置、可扩展的日志库。支持多个级别,输出到多文件;内置文件日志处理、自动切割、清理、压缩等增强功能

Github github.com/gookit/slog

v0.5.2 更新记录

完整变更记录: github.com/gookit/slog/compare/v0....

新功能

更新调整

新功能使用

自定义日志文件权限

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

h1 := handler.MustFileHandler("/tmp/error.log",
    handler.WithLogLevels(slog.DangerLevels),
    handler.WithFilePerm(0644), // <- 设置创建文件的权限
)

slog.PushHandler(h1)

设置RotateMode为ModeCreate

RotateMode 文件切割模式:

  • ModeRename 默认,每到时间重命名处理分割
  • ModeCreate 只按照分割时间创建

设置 RotateModeModeCreate 可以让日志文件,只按照分割时间创建。

h1 := handler.MustRotateFile(
    "/tmp/error.log",
    rotatefile.EveryHour, // 按每小时分割
    handler.WithLogLevels(slog.DangerLevels),
    handler.WithRotateMode(rotatefile.ModeCreate), // 设置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
...

Tips: ModeCreate 模式可以适用于命令行工具应用。因为它们是每次执行完就退出,ModeRename 模式下可能无法按时分割文件。

而使用 ModeRename 模式会是如下效果:

/tmp/error.log # <- 日志始终写入这个文件
/tmp/error.log.20230618_1500
/tmp/error.log.20230618_1600
/tmp/error.log.20230618_1700
...

更多

更多使用说明请看 README

Inhere
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!