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