在 Debian 系统上,“清理 Golang 日志缓存”通常有以下几种理解,下面分别说明常见处理方式和命令。
Golang 本身没有统一的日志缓存目录,日志一般是你自己在代码中写入的(如 log 包、zap、logrus 等)。
常见位置:
/var/log/
~/logs/
./logs/
查找 .log 文件:
find / -name "*.log" 2>/dev/null
安全做法(推荐):清空而不是删除
> /var/log/yourapp.log
或:
truncate -s 0 /var/log/yourapp.log
删除文件:
rm -f /var/log/yourapp.log
⚠️ 如果程序还在运行,直接
rm可能导致日志继续写入已删除文件(磁盘不释放)
如果 Golang 程序是通过 systemd 启动的:
journalctl -u your-golang-service
# 清理所有日志
journalctl --vacuum-time=7d
# 或限制大小
journalctl --vacuum-size=100M
重启服务(可选):
systemctl restart your-golang-service
有些人会把 Go 的构建缓存当成日志:
go clean -cache
go clean -modcache
查看缓存位置:
go env GOCACHE
go env GOPATH
如果你在代码里用了 buffer(如 bufio.Writer):
确保在程序中调用:
logger.Sync()
// 或
writer.Flush()
否则日志只存在内存中,不会写入磁盘。
logrotate 管理日志/etc/logrotate.d/golang:/var/log/yourapp.log {
daily
rotate 7
compress
missingok
notifempty
copytruncate
}
如果你能补充:
我可以给你更精确的清理方案。