在 Linux 下定位 Node.js 日志和排查问题,通常可以从日志位置、运行方式、系统工具、常见排查手段几个方面入手。下面按实战流程给你一个清晰指南。
不同启动方式,日志位置完全不同:
node app.js
✅ 建议重定向:
node app.js > app.log 2>&1 &
pm2 logs
pm2 logs appName
查看日志文件:
~/.pm2/logs/
常用:
pm2 list
pm2 describe appName
pm2 restart appName
systemctl status node-app
journalctl -u node-app -f
日志位置:
/var/log/syslog
journalctl
docker logs -f container_id
常见目录:
/var/log/
/project/logs/
./logs/
例如:
logs/error.loglogs/access.log/var/log/nginx/access.log
/var/log/nginx/error.log
tail -f app.log
grep -i error app.log
grep -A 10 -B 5 "TypeError" app.log
ps aux | grep node
top
htop
netstat -tunlp | grep 3000
ss -lntp
free -h
df -h
iotop
process.on('uncaughtException', e => {
console.error(e)
})
ulimit -c unlimited
node --abort-on-uncaught-exception app.js
winstonpino(性能好)log4js示例:
const winston = require('winston')
输出到文件 + 控制台。
Error / Exception?如果你愿意,可以告诉我:
我可以直接帮你精准定位问题。