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

您的位置: 首页 > 文章列表 > 编程开发 > Golang在Debian上的日志轮转策略

Golang在Debian上的日志轮转策略

  发布于2026-07-05 阅读(0)

扫一扫,手机访问

在Debian上跑Golang应用,日志管理是个绕不开的环节。日志文件如果不加控制,很快就会把磁盘撑爆——这不是危言耸听,实际踩过坑的人都知道。好在系统自带的logrotate就能干净利落地解决这个问题,它负责自动压缩、清理、轮转日志,完全不需要你手动干涉。下面直接说怎么配置。

Golang在Debian上的日志轮转策略

  1. 先确认系统里有没有logrotate。Debian默认一般会装,但万一没有,跑这两条命令就能搞定:

    sudo apt-get update
    sudo apt-get install logrotate
  2. 然后到 /etc/logrotate.d/ 目录下给应用建个专属配置,比如叫 golang-app

    sudo nano /etc/logrotate.d/golang-app
  3. 配置文件里写这些内容,注意按照实际路径修改:

    /path/to/your/golang-app.log {
        # 每天轮转一次
        daily
        # 保留最近7天的日志
        rotate 7
        # 压缩旧日志节省空间
        compress
        # 超过30天的日志直接删除
        maxage 30
        # 轮转后创建新日志文件,权限640,属主root,属组adm
        create 640 root adm
        # 轮转后向进程发信号,让应用重新打开日志文件(可选)
        postrotate
            if [ -f /var/run/golang-app.pid ]; then
                kill -USR1 `cat /var/run/golang-app.pid`
            fi
        endscript
    }

    两个关键路径要换成你自己的:日志文件路径 /path/to/your/golang-app.log 和PID文件路径 /var/run/golang-app.pid。如果应用本身支持USR1信号重载日志,这步就能实现无缝轮转;不支持的话,去掉postrotate段也行,大不了重启应用。

  4. 配置写完保存退出。最后一步,测试一下配置有没有语法错误:

    sudo logrotate -f /etc/logrotate.d/golang-app

    如果没有任何报错,那就搞定了。logrotate会按设定每天自动干活,你只需要确保应用在轮转后能正确处理日志文件(比如重新打开或继续写入新文件)。

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

热门关注