温馨提示×

ubuntu nodejs日志怎么排查

小樊
38
2026-09-15 16:41:22
栏目: 编程语言

在 Ubuntu 上排查 Node.js 日志,通常可以按下面几个方向来做:


一、先看 Node.js 应用自身的日志

1. 前台运行(终端直接启动)

如果你是这样启动的:

node app.js

日志会直接输出在终端里,包括:

  • console.log
  • console.error
  • 未捕获异常堆栈

2. 后台运行(nohup / &)

node app.js > app.log 2>&1 &

查看日志:

tail -f app.log

3. PM2 管理的 Node.js(最常见)

如果你用 PM2:

pm2 logs
pm2 logs appName
pm2 logs --lines 100

查看错误日志:

pm2 show appName

PM2 日志默认位置:

~/.pm2/logs/

二、系统日志(Ubuntu)

1. systemd 服务方式运行的 Node.js

如果你的 Node 是 systemd 服务:

journalctl -u your-node-service.service -f
journalctl -u your-node-service.service --since "1 hour ago"

2. 通用系统日志

sudo less /var/log/syslog
sudo tail -f /var/log/syslog

三、Web 服务器日志(如 Nginx 反向代理)

如果 Node 前面有 Nginx:

sudo tail -f /var/log/nginx/access.log
sudo tail -f /var/log/nginx/error.log

四、常见错误排查思路

1. 端口被占用

EADDRINUSE: address already in use

排查:

sudo lsof -i:3000
sudo netstat -tunlp | grep 3000

2. 权限问题

EACCES

常见于:

  • 监听 80/443 端口
  • 写日志目录无权限

3. 内存溢出

FATAL ERROR: Ineffective mark-compacts

查看内存:

free -h
pm2 monit

4. 未捕获异常

在代码里加:

process.on('uncaughtException', e => {
  console.error('uncaughtException', e);
});
process.on('unhandledRejection', e => {
  console.error('unhandledRejection', e);
});

五、快速排查清单(建议顺序)

  1. pm2 logsjournalctl -u xxx
  2. tail -f 应用日志
  3. 看 Nginx / 反向代理错误
  4. 检查端口、权限、内存
  5. 本地 node app.js 复现

如果你愿意,可以告诉我:

  • 你是 PM2 / systemd / docker / 裸跑
  • 报的 具体错误日志

我可以帮你精准定位。

0