在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库。