温馨提示×

如何清debian golang日志

小樊
39
2026-10-04 04:46:17
栏目: 编程语言

在 Debian 系统上,“清理 Golang 日志”通常分为几种情况。下面按常见场景给你说明。


一、清理你自己写的 Go 程序产生的日志

1. 找到日志文件位置

先确认你的 Go 程序日志写在哪里,常见位置:

/var/log/yourapp/
/var/log/yourapp.log
~/logs/

查看进程对应的日志路径:

ps aux | grep yourgoapp

2. 直接删除或清空日志

删除日志文件

sudo rm -f /var/log/yourgoapp/*.log

清空日志(保留文件)

sudo truncate -s 0 /var/log/yourgoapp.log

或

sudo > /var/log/yourgoapp.log

二、使用 logrotate 自动清理(推荐)

如果是服务运行的 Go 程序,建议用 logrotate。

示例配置

创建:

sudo nano /etc/logrotate.d/yourapp

内容示例:

/var/log/yourapp/*.log {
    daily
    rotate 7
    compress
    missingok
    notifempty
    copytruncate
}

测试:

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

三、清理 systemd 管理的 Go 服务日志

如果 Go 程序是通过 systemd 启动的:

查看日志

journalctl -u yourapp.service

清理日志

只保留最近 100MB

sudo journalctl --vacuum-size=100M

只保留最近 7 天

sudo journalctl --vacuum-time=7d

清空某个服务日志

sudo journalctl --rotate
sudo journalctl --vacuum-time=1s

四、清理 Go 编译/构建缓存(非运行日志)

如果是想清理 Go 自身的缓存:

go clean -cache
go clean -modcache

五、常见错误做法(不建议)

❌ 直接 rm -rf /var/log(会破坏系统)
❌ 删除正在写入的日志但不通知进程


如果你能告诉我:

  • Go 程序是怎么运行的(systemd / docker / 手动)
  • 日志写在哪个目录

我可以给你更精确的清理命令。

0 踩