读懂 Debian 系统上 Node.js 的日志,通常需要先搞清楚 日志从哪里来、日志格式是什么、常见错误怎么看。下面按实用角度给你一个系统性的说明。
如果你用 console.log / console.error:
console.log('server started');
console.error('db connect failed');
运行方式不同,日志位置不同:
| 启动方式 | 日志位置 |
|---|---|
前台运行 node app.js |
终端直接输出 |
后台运行 node app.js > app.log 2>&1 & |
app.log |
| systemd 服务 | journalctl -u your-service |
| PM2 | pm2 logs |
| Docker | docker logs 容器名 |
如果 Node.js 是通过 systemd 启动的:
journalctl -u node-app.service
实时查看:
journalctl -u node-app.service -f
只看错误:
journalctl -u node-app.service -p err
如果 Node 前面有 Nginx:
/var/log/nginx/access.log
/var/log/nginx/error.log
常见情况:
server listening on port 3000
✅ 正常启动
Error: connect ECONNREFUSED 127.0.0.1:5432
含义:
TypeError: Cannot read property 'id' of undefined
at getUser (/app/user.js:12:20)
怎么看:
UnhandledPromiseRejectionWarning
说明:
tail -f /var/log/node/app.log
tail -n 100 /var/log/node/app.log
grep -i error /var/log/node/app.log
npm install winston
好处:
pm2 start app.js
pm2 logs
如果你愿意,可以:
我可以直接帮你“翻译”并定位问题。