商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > 如何在CentOS中实现Golang日志压缩

如何在CentOS中实现Golang日志压缩

  发布于2026-06-30 阅读(0)

扫一扫,手机访问

在 CentOS 上管理 Golang 应用的日志,最省心也最规范的做法,就是借助系统自带的 logrotate。它能自动完成日志的切割、压缩和清理,省去自己写脚本的麻烦。下面直接上操作步骤,每一步都有具体说明。

如何在CentOS中实现Golang日志压缩

  1. 安装 logrotate
    如果你的 CentOS 系统里还没装这个工具,一条命令就能搞定:

    sudo yum install logrotate

    装完之后,它默认会在每天早上自动运行一次,检查所有配置过的日志文件。

  2. 创建或编辑配置文件
    logrotate 的配置文件统一放在 /etc/logrotate.d/ 目录下,每个应用一个文件,互不干扰。假设你的 Golang 程序叫 myapp,那就创建一个同名文件:

    sudo vi /etc/logrotate.d/myapp
  3. 写入核心配置
    在打开的文件里,贴入下面这段配置(注意把路径换成你自己应用的日志目录):

    /path/to/your/logs/*.log {
        daily
        missingok
        rotate 7
        compress
        notifempty
        create 0640 root root
    }

    每一行的含义非常直观:

    • daily —— 每天执行一次日志切割,你也可以改成 weeklymonthly,但日常运维按天最常用。
    • missingok —— 如果日志文件不存在,直接跳过,不报错。这对刚部署的新应用很友好。
    • rotate 7 —— 保留最近 7 个压缩后的历史日志文件,更早的自动删除。
    • compress —— 对旧日志进行 gzip 压缩,大幅节省磁盘空间。
    • notifempty —— 当天的日志文件为空时,不执行切割和压缩,避免产生多余的空压缩包。
    • create 0640 root root —— 切割后新建一个同名日志文件,权限设为 0640,属主和属组都是 root。权限值可以根据你的场景调整。
  4. 测试配置是否生效
    配置写完了,建议先用下面这条命令强制跑一次,检查有没有语法错误或路径问题:

    sudo logrotate -f /etc/logrotate.d/myapp

    参数 -f 表示强制执行。如果终端没有报错,说明配置正常;如果提示文件不存在或权限不对,可以根据错误信息调整。

  5. 确认自动运行
    logrotate 的定时任务由系统 cron 管理,通常已经配置好。你可以检查一下状态文件 /var/lib/logrotate/status,里面记录了每个日志文件最后一次被处理的时间。只要看到你配置的日志路径出现在里面,就说明自动任务已经接管了。

到这里,整个日志压缩方案就落地了。以后 Golang 应用写出来的日志,每天凌晨会被自动切割、压缩,同时保留最近一周的历史,既不丢数据,也不占冤枉空间。一套配置,长期受益。

本文转载于:https://www.yisu.com/ask/78364256.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注