在CentOS中對Golang日志進行壓縮,可通過以下方式實現:
gzip
命令行工具gzip /path/to/app.log # 生成app.log.gz,原文件被刪除
logrotate
工具自動管理
logrotate
:sudo yum install logrotate
/etc/logrotate.d/myapp
):/path/to/app.log {
daily
rotate 7
compress
missingok
notifempty
}
配置說明:每天輪轉日志,保留7天,自動壓縮舊日志。lumberjack
庫:支持日志輪轉與壓縮,示例代碼:import "gopkg.in/natefinch/lumberjack.v2"
log.SetOutput(&lumberjack.Logger{
Filename: "/var/log/app.log",
MaxSize: 10, // MB
MaxBackups: 3,
MaxAge: 28, // 天
Compress: true, // 啟用壓縮
})
需先安裝庫:go get gopkg.in/natefinch/lumberjack.v2
。zap
/logrus
庫:部分庫支持直接配置壓縮,需結合lumberjack
或自定義實現。選擇建議:
gzip
命令。logrotate
或lumberjack
庫。