分析 Node.js 在 Linux 上的日志,通常可以分为日志来源定位 → 收集方式 → 分析手段 → 问题排查思路四个层面。下面给你一个比较系统和实用的指南。
常见方式:
console.log / console.errorwinstonpinobunyanlog4js一般输出位置:
logs/app.log)journalctl -u your-node-service/var/log/syslog/var/log/messages~/.pm2/logs/pm2 logsuncaughtExceptionunhandledRejectiondmesg | grep -i kill/var/log/kern.logtail -f app.log
pm2 logs
journalctl -u node-app -f
grep -i "error" app.log
grep "ECONNRESET" app.log
grep -c "Error" app.log
sed -n '/2026-01-21 10:00/,/2026-01-21 11:00/p' app.log
grep "Error" app.log | sort | uniq -c | sort -nr | head
{
"level": "error",
"time": "2026-01-21T10:00:00Z",
"msg": "DB timeout",
"pid": 1234
}
分析方式:
jq 'select(.level=="error")' app.log
top -p <pid>
perf top -p <pid>
配合日志:
heap out of memorynode --inspect
或用 heapdump重点看:
ETIMEDOUTECONNRESETENOTFOUND# 查看今天错误
grep "$(date +%Y-%m-%d)" app.log | grep -i error
# 查看崩溃
grep -i "uncaught\|unhandled" app.log
# 查看慢请求
grep "slow request" app.log | awk '{print $NF}' | sort -n
如果你愿意,可以:
我可以直接帮你做具体日志分析。