温馨提示×

Golang日志在CentOS如何压缩

小樊
45
2025-08-06 15:41:31
栏目: 编程语言

在CentOS中对Golang日志进行压缩,可通过以下方式实现:

  1. 使用gzip命令行工具
    手动压缩单个日志文件,如:
    gzip /path/to/app.log # 生成app.log.gz,原文件被删除 
  2. 通过logrotate工具自动管理
    • 安装logrotatesudo yum install logrotate
    • 创建配置文件(如/etc/logrotate.d/myapp):
      /path/to/app.log { daily rotate 7 compress missingok notifempty } 
      配置说明:每天轮转日志,保留7天,自动压缩旧日志。
  3. 在Golang代码中使用日志库
    • 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命令。
  • 需自动化管理日志轮转与压缩,用logrotatelumberjack库。

0