在 Ubuntu 上定位 Node.js 日志和错误,通常可以按下面几个层次来做:
如果是前台运行:
node app.js
错误会直接打印在终端。
如果是后台运行(常见方式):
pm2pm2 logs
pm2 logs appname
systemdjournalctl -u yourapp.service -f
nohupcat nohup.out
dockerdocker logs container_name
sudo journalctl -u your-node-service -n 100 -f
-n 100:最近 100 行-f:实时跟踪sudo tail -f /var/log/syslog
重点关注:
Error:at Object.<anonymous>例如:
Error: Cannot find module 'express'
at Function.Module._resolveFilename
→ 说明依赖没装
node -v
npm -v
npm ls
常见错误:
npm installnvm 切换版本sudo lsof -i :3000
或
netstat -tunlp | grep 3000
DEBUG=* node app.js
process.on('uncaughtException', e => {
console.error(e);
});
process.on('unhandledRejection', e => {
console.error(e);
});
winston / pino 写结构化日志如果你能贴出:
我可以帮你精准定位是哪一行、哪个模块的问题。