在 Ubuntu 上清理 Node.js 日志,要分几种常见场景来处理。下面按最常用 → 进阶给你一个完整方案。
假设你的日志在:
/var/log/myapp/
或项目目录:
~/project/logs/
查看日志大小:
du -sh logs/
删除旧日志:
rm -f logs/*.log
⚠️ 注意:如果 Node 进程仍在运行,直接 rm 可能会导致:
✅ 推荐方式(安全):
: > logs/app.log
或:
truncate -s 0 logs/app.log
pm2 logs
pm2 flush
pm2 flush app_name
✅ 推荐,不会中断服务。
/var/log/
如:
/var/log/syslog
/var/log/kern.log
du -sh /var/log/*
sudo journalctl --vacuum-time=7d
保留最近 7 天。
或按大小:
sudo journalctl --vacuum-size=100M
logrotate(生产必配)sudo vim /etc/logrotate.d/nodeapp
/var/log/myapp/*.log {
daily
rotate 7
compress
missingok
notifempty
copytruncate
}
✅ 每天轮转
✅ 保留 7 天
✅ 自动压缩
✅ 不中断 Node 进程
docker system prune -f
{
"log-driver": "json-file",
"log-opts": {
"max-size": "50m",
"max-file": "3"
}
}
sudo truncate -s 0 /var/log/nginx/access.log
sudo truncate -s 0 /var/log/nginx/error.log
✅ 开发环境
pm2 flushtruncate✅ 生产环境
logrotatejournalctl --vacuum-timerm✅ Docker
如果你愿意,可以告诉我:
我可以给你定制一套日志清理方案。