Golang Go语言:gookit/slog - 易于使用的,可配置、可扩展的日志库,发布v0.5.2版本
gookit/slog
📑 一个易于使用的,可配置、可扩展的日志库。支持多个级别,输出到多文件;内置文件日志处理、自动切割、清理、压缩等增强功能
v0.5.2 更新记录
完整变更记录: https://github.com/gookit/slog/compare/v0.5.1...v0.5.2
新功能
- ✨ feat: 添加新选项 FilePerm 用于自定义创建 log 文件上的权限. issues #102 https://github.com/gookit/slog/commit/699ecd8bc2dea0fb35607ba89d4299e86f96e40b
- ✨ feat: rotatefile - 添加新配置旋转模式
RotateMode
,支持在旋转时间创建日志文件。https://github.com/gookit/slog/commit/8c4a9a08a9b3432a699f6770b73935ecfd42e5b8
更新调整
- 👔 up: 更新并添加更多单元测试,将 goutil 升级到 v0.6.10 https://github.com/gookit/slog/commit/693cc04eb0e375183357be18893cbecaa171ffa1
- 📝 doc: 更新 README 文档说明 https://github.com/gookit/slog/commit/cbf77c38db5615a9a7ec8ab07853b2f9e3517bfa
- ✅ test: 添加更多单元测试用例 https://github.com/gookit/slog/commit/8468ea470645bb981fb34002176671bac1a9559e
新功能使用
自定义日志文件权限
通过配置 hander.Config
的 FilePerm
设置创建的 log 文件权限标志。
h1 := handler.MustFileHandler("/tmp/error.log",
handler.WithLogLevels(slog.DangerLevels),
handler.WithFilePerm(0644), // <- 设置创建文件的权限
)
slog.PushHandler(h1)
设置 RotateMode 为 ModeCreate
RotateMode 文件切割模式:
- ModeRename 默认,每到时间重命名处理分割
- ModeCreate 只按照分割时间创建
设置 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
Golang Go语言:gookit/slog - 易于使用的,可配置、可扩展的日志库,发布v0.5.2版本
更多关于Golang Go语言:gookit/slog - 易于使用的,可配置、可扩展的日志库,发布v0.5.2版本的实战教程也可以访问 https://www.itying.com/category-94-b0.html
不错,国人的轮子
更多关于Golang Go语言:gookit/slog - 易于使用的,可配置、可扩展的日志库,发布v0.5.2版本的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
跟官方日志库同一个名字
go 尚未发布的官方结构化日志 log/slog
支持一下。学 go 的时候,看过源码。当作学习资料了😘
官方的 slog 怎么没有输出到文件的介绍?
关于您提到的Golang中的gookit/slog
日志库发布v0.5.2版本,这是一个值得关注的更新。gookit/slog
作为一个易于使用、可配置且可扩展的日志库,在Go语言社区中一直享有不错的口碑。以下是针对此次更新的简要分析和评价:
-
易用性:
slog
的设计初衷就是简化日志记录的过程,通过提供直观的API和配置选项,让开发者能够轻松上手。v0.5.2版本在保持这一优势的同时,可能还进一步优化了使用体验。 -
可配置性:该日志库支持多种日志级别和输出格式,允许开发者根据实际需求进行灵活配置。新版本可能增加了更多的配置选项,或者优化了现有配置的使用方式。
-
可扩展性:
slog
通过插件化的设计,支持开发者根据需要添加新的日志处理器或格式器。v0.5.2版本可能在这方面进行了增强,提供了更多的扩展点或改进了扩展机制。 -
稳定性与性能:作为日志库,稳定性和性能是至关重要的。新版本可能修复了之前版本中的一些bug,并优化了性能表现,以确保在各种应用场景中都能提供可靠的服务。
总的来说,gookit/slog
v0.5.2版本的发布是一个积极的信号,表明该日志库在不断完善和进步。对于正在寻找一个易用、可配置且可扩展的日志库的Go语言开发者来说,slog
无疑是一个值得考虑的选择。