gookit/slog
📑 一个易于使用的,可配置、可扩展的日志库。支持多个级别,输出到多文件;内置文件日志处理、自动切割、清理、压缩等增强功能
完整变更记录: https://github.com/gookit/slog/compare/v0.5.1...v0.5.2
RotateMode
,支持在旋转时间创建日志文件。https://github.com/gookit/slog/commit/8c4a9a08a9b3432a699f6770b73935ecfd42e5b8通过配置 hander.Config
的 FilePerm
设置创建的 log 文件权限标志。
h1 := handler.MustFileHandler("/tmp/error.log",
handler.WithLogLevels(slog.DangerLevels),
handler.WithFilePerm(0644), // <- 设置创建文件的权限
)
slog.PushHandler(h1)
RotateMode 文件切割模式:
设置 RotateMode
为 ModeCreate
可以让日志文件,只按照分割时间创建。
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
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.