在 Ubuntu 上查找 Node.js 日志 取决于你的应用是怎么运行的。下面按常见场景给你一个“排查清单”。
一、先看 Node.js 应用本身有没有写日志
1. 应用里有没有 console.log / console.error
Node.js 默认会把:
-
console.log→ stdout -
console.error→ stderr
运行方式不同,日志去向也不同。
二、前台运行(直接 node app.js)
日志直接输出在终端:
node app.js
✅ 这是最简单的,直接看终端即可。
三、后台运行(最常见)
1. 使用 & 或 nohup
node app.js > app.log 2>&1 &
日志在:
app.log
或:
nohup node app.js &
日志在:
nohup.out
2. 使用 pm2(强烈推荐)
查看日志
pm2 logs
只看某个应用:
pm2 logs app-name
只看错误日志:
pm2 logs app-name --err
日志默认位置:
~/.pm2/logs/
3. 使用 systemd(服务器常用)
查看服务状态
systemctl status your-node-service
查看日志
journalctl -u your-node-service
实时查看:
journalctl -u your-node-service -f
四、Docker 运行的 Node.js
docker logs 容器名或ID
实时查看:
docker logs -f 容器名
五、常见日志位置速查表
| 运行方式 | 日志位置 |
|---|---|
| node app.js | 终端 |
| nohup | nohup.out |
| > log | 指定文件 |
| pm2 | ~/.pm2/logs/ |
| systemd | journalctl |
| docker | docker logs |
六、如果“完全找不到日志”
可以全局搜索:
find / -name "*.log" 2>/dev/null | grep -E "node|app"
或看进程输出文件:
ls -l /proc/$(pgrep node)/fd
七、建议的最佳实践 ✅
- 用 pm2 管理 Node.js
- 日志写到文件 + 按天切割
- 或用
winston / pino日志库
如果你愿意,可以告诉我:
- 你的 Node.js 是怎么启动的?
- 是本地还是服务器?
- 用的是 pm2 / docker / systemd?
我可以直接帮你定位到具体日志路径。