温馨提示×

ubuntu如何清nodejs日志

小樊
37
2026-09-12 10:32:32
栏目: 编程语言

在 Ubuntu 上“清 Node.js 日志”需要看日志是存在哪里的,常见有几种情况。下面按最常见场景给你说明。


一、Node.js 应用自己写的日志文件

比如日志写在:

/var/log/myapp/
~/projects/myapp/logs/

查看日志文件

ls -lh /var/log/myapp/

清空日志(不删除文件)

> /var/log/myapp/app.log

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

删除日志文件

rm -f /var/log/myapp/*.log

二、使用 PM2 管理的 Node.js

查看日志位置

pm2 logs
pm2 describe <app_name>

清空 PM2 日志

pm2 flush

或单独清:

pm2 flush <app_name>

三、使用 systemd 管理的 Node.js 服务

如果你的 Node.js 是通过 systemd 启动的(如 myapp.service

查看日志

journalctl -u myapp.service

只保留最近日志 / 清理 journal 日志

sudo journalctl --vacuum-time=1d
# 或
sudo journalctl --vacuum-size=100M

⚠️ systemd 日志不能直接“清空某一个服务”,只能整体清理。


四、Docker 中运行的 Node.js

查看容器日志

docker logs <container_id>

清理 Docker 日志

docker system prune

或限制日志大小(推荐在 docker-compose.yml 中配置)


五、避免日志无限增长(重要)

建议做法

  • 使用日志库(winston / pino)
  • 开启日志轮转(logrotate)

示例 logrotate:

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

快速判断你属于哪种情况

你可以先告诉我:

  1. Node.js 是怎么启动的?(直接 node / pm2 / systemd / docker)
  2. 日志报错路径或内容截图

我可以给你精确的一条命令

0