在 Debian 上使用 Go(Golang)时,如果你发现日志文件非常大,通常不是 Debian 本身的问题,而是Go 程序、运行方式或系统配置导致的。下面按常见原因给你梳理一下,并给出对应的解决办法。
比如一直用:
log.Println("debug info")
或框架默认是 debug / info。
✅ 解决:
warn / errorzap、logrus)并设置级别logger.SetLevel(zapcore.WarnLevel)
例如:
✅ 解决:
Debian 默认不会自动帮你切 Go 日志,除非你显式配置。
app.log✅ 解决方式(任选):
sudo apt install logrotate
示例 /etc/logrotate.d/mygo:
/var/log/myapp/*.log {
daily
rotate 7
compress
missingok
notifempty
copytruncate
}
lumberjack&lumberjack.Logger{
Filename: "/var/log/myapp/app.log",
MaxSize: 100, // MB
MaxBackups: 5,
Compress: true,
}
如果:
⚠️ 结果:日志爆炸式增长
✅ 解决:
journalctl -u yourservice[Service]
Restart=on-failure
RestartSec=10
Debian 用 systemd 时:
journalctl
可能显示“Go 日志很多”。
✅ 查看占用:
journalctl --disk-usage
✅ 限制大小:
sudo nano /etc/systemd/journald.conf
SystemMaxUse=500M
然后:
sudo systemctl restart systemd-journald
如果你这样跑:
./app > app.log 2>&1
而又没轮转,那日志只会无限增长。
✅ 建议:
StandardOutput=journal例如:
✅ 解决:
# 看哪个日志最大
du -sh /var/log/*
# 看 Go 服务日志
journalctl -u your-service -n 100
# 看文件增长速度
watch -n 1 ls -lh /var/log/myapp/app.log
如果你愿意,可以告诉我:
我可以帮你具体给出配置示例。