在 Ubuntu 上“定位 Node.js 日志”通常分几种情况,下面按常见场景给你说明,基本能覆盖 90% 的需求。
如果你是直接运行:
node app.js
日志会直接输出到终端(stdout / stderr)。
如果用了:
node app.js > app.log 2>&1
日志就在:
./app.log
如果你用 PM2 管理 Node.js:
pm2 logs
查看某个应用:
pm2 logs app-name
日志文件实际位置:
~/.pm2/logs/
例如:
~/.pm2/logs/app-name-out.log
~/.pm2/logs/app-name-error.log
如果 Node.js 是通过 systemd 启动的:
查看日志:
journalctl -u your-node-service
实时查看:
journalctl -u your-node-service -f
日志位置(一般不用直接看文件):
/var/log/syslog
/var/log/journal/
如果你看到:
Error: ...
at Object.<anonymous> (/path/app.js:10:5)
这是应用代码错误,日志在:
如果 Node 崩溃并生成 core:
/var/crash/
或:
core.*
如果 Node 在 Nginx 后面:
Nginx 日志:
/var/log/nginx/access.log
/var/log/nginx/error.log
查看 Node 请求是否进来:
tail -f /var/log/nginx/access.log
ps aux | grep node
查看监听端口:
sudo netstat -tunlp | grep node
# 或
sudo ss -tunlp | grep node
# 实时看日志
tail -f app.log
# 搜关键字
grep -i error app.log
# PM2
pm2 logs
# systemd
journalctl -u node-app -f
如果你愿意,可以告诉我:
我可以直接给你最合适的一条命令。