温馨提示×

怎样清空centos golang日志

小樊
40
2026-10-11 23:08:11
栏目: 编程语言

在 CentOS 上“清空 Golang 日志”取决于日志是写在哪里的,常见情况如下,你可以对号入座。


一、Golang 程序自己写的日志文件(最常见)

如果程序把日志写到文件,例如:

/var/log/myapp/app.log

清空方式(推荐,不删文件、不中断程序)

> /var/log/myapp/app.log

或

truncate -s 0 /var/log/myapp/app.log

✅ 优点:

  • 文件还在
  • 程序无需重启
  • inode 不变

二、使用 systemd 的 Golang 服务(journald 日志)

如果 Golang 是用 systemd 启动的:

systemctl status myapp

查看日志

journalctl -u myapp

清空 journald 日志(全部)

journalctl --vacuum-time=1s

或只清某个服务:

journalctl --vacuum-size=1M

三、使用 logrotate(推荐长期方案)

如果你用的是 logrotate:

/etc/logrotate.d/myapp

可以手动触发:

logrotate -f /etc/logrotate.d/myapp

四、Docker 中的 Golang 日志

如果是容器:

docker logs <容器名>

清空 docker 日志

truncate -s 0 $(docker inspect --format='{{.LogPath}}' 容器名)

五、常见错误方式 ❌

rm app.log

⚠ 可能导致:

  • 程序继续写“已删除文件”
  • 磁盘不释放
  • 必须重启程序

六、建议

  • 生产环境:truncate / logrotate
  • 开发环境:直接删没关系
  • 大日志:先 du -sh 看大小

如果你愿意,可以告诉我:

  • 日志路径
  • 是否用 systemd / docker
  • 是否持续写入

我可以给你最合适的一条命令。

0 踩