-
Notifications
You must be signed in to change notification settings - Fork 0
xrotate
omeyang edited this page Sep 17, 2026
·
1 revision
稳定性:Stable · 覆盖率:96.9% · 源码:
pkg/observability/xrotate
日志文件轮转。基于 natefinch/lumberjack,按大小 + 时间轮转,自动压缩。
- 日志写入文件而非 stdout 时的滚动管理
- 长期运行服务避免日志撑满磁盘
import (
"github.com/omeyang/xkit/pkg/observability/xrotate"
"log/slog"
)
w := xrotate.New(xrotate.Config{
Filename: "/var/log/app.log",
MaxSize: 100, // MB
MaxBackups: 10,
MaxAge: 30, // days
Compress: true,
})
logger := slog.New(slog.NewJSONHandler(w, nil))| 名称 | 说明 |
|---|---|
Config |
配置(Filename / MaxSize / MaxBackups / MaxAge / Compress) |
New(cfg) io.Writer |
构造(实现 io.Writer,可注入任意 logger) |
- lumberjack 久经考验:选它不写自家轮转
- 不耦合日志框架:返 io.Writer,slog/zap/任何 logger 都能用