定位 Node.js 日志异常通常可以从日志本身、运行环境、代码逻辑、系统资源几个层面入手。下面给你一套比较实用的排查思路和常用方法。
常见情况包括:
先确认是哪一种,再针对性排查。
Node.js 日志中通常会有:
Error: xxx
at xxx (file.js:10:5)
重点看:
async/await + try catch确保有基础保护:
process.on('uncaughtException', (err) => {
console.error('uncaughtException', err);
});
process.on('unhandledRejection', (reason) => {
console.error('unhandledRejection', reason);
});
echo $?
常见:
1:普通错误137:内存不足(OOM)143:被 SIGTERM 杀掉console.log 但被重定向logger.level = 'info';
检查是否:
errornode -v
npm ls <package>
或
npm audit
top
htop
lsof -p <pid>
常见于:
df -h
日志写满磁盘会导致异常。
NODE_ENV=development node app.js
DEBUG=* node app.js
node --inspect app.js
如果你愿意,可以把具体的异常日志内容或报错信息贴出来,我可以帮你更精确地定位问题。