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