在 Linux 上排查 Node.js 报错日志,一般可以按下面几个方向来找:
如果你是直接在终端运行:
node app.js
报错会直接打印在终端里。
如果你用了:
node app.js > app.log 2>&1 &
那日志就在:
cat app.log
tail -f app.log
如果是 nohup:
nohup node app.js &
cat nohup.out
如果 Node.js 是用 systemd 管理的(如 myapp.service):
# 查看实时日志
journalctl -u myapp.service -f
# 查看最近 100 行
journalctl -u myapp.service -n 100
# 指定时间
journalctl -u myapp.service --since "2024-01-01 00:00:00"
如果你用 PM2:
pm2 logs
pm2 logs appname
pm2 logs --err
pm2 logs --lines 200
日志文件一般在:
~/.pm2/logs/
docker logs 容器名
docker logs -f 容器名
docker logs --tail 200 容器名
常见位置:
/var/log/
项目目录下的 logs/
如:
tail -f logs/error.log
# 内存不足、崩溃等
dmesg | grep node
# 系统日志
cat /var/log/syslog
journalctl -xe
Error: Cannot find module → 依赖没装EADDRINUSE → 端口被占用Segmentation fault → 看 dmesgunhandledRejection → 代码里 Promise 没 catch如果你愿意,可以把你是怎么启动 Node.js 的(命令 / pm2 / docker / systemd)和具体报错内容发出来,我可以直接帮你定位。