在 Ubuntu 上排查 Node.js 日志,通常可以按下面几个方向来做:
如果你是这样启动的:
node app.js
日志会直接输出在终端里,包括:
console.logconsole.errornode app.js > app.log 2>&1 &
查看日志:
tail -f app.log
如果你用 PM2:
pm2 logs
pm2 logs appName
pm2 logs --lines 100
查看错误日志:
pm2 show appName
PM2 日志默认位置:
~/.pm2/logs/
如果你的 Node 是 systemd 服务:
journalctl -u your-node-service.service -f
journalctl -u your-node-service.service --since "1 hour ago"
sudo less /var/log/syslog
sudo tail -f /var/log/syslog
如果 Node 前面有 Nginx:
sudo tail -f /var/log/nginx/access.log
sudo tail -f /var/log/nginx/error.log
EADDRINUSE: address already in use
排查:
sudo lsof -i:3000
sudo netstat -tunlp | grep 3000
EACCES
常见于:
FATAL ERROR: Ineffective mark-compacts
查看内存:
free -h
pm2 monit
在代码里加:
process.on('uncaughtException', e => {
console.error('uncaughtException', e);
});
process.on('unhandledRejection', e => {
console.error('unhandledRejection', e);
});
pm2 logs 或 journalctl -u xxxtail -f 应用日志node app.js 复现如果你愿意,可以告诉我:
我可以帮你精准定位。