读懂 Debian 系统上 Node.js 日志,一般可以从「日志来源 → 日志格式 → 常见内容含义 → 排查方法」四个层面入手。下面用通俗方式讲清楚。
在 Debian 上,Node.js 日志通常来自这几处:
console.log / console.errorwinston、pino、bunyan)/var/log/yourapp/
~/yourapp/logs/
如果 Node.js 是用 systemd 管理的:
journalctl -u yourapp.service
或实时看:
journalctl -u yourapp.service -f
Node 前面通常有 Nginx:
/var/log/nginx/access.log
/var/log/nginx/error.log
比如端口占用、OOM:
dmesg | tail
2026-01-15 10:23:12 Error: connect ECONNREFUSED 127.0.0.1:6379
含义:
TypeError: Cannot read property 'id' of undefined
at getUser (/app/user.js:23:10)
重点看:
{
"level": "error",
"time": "2026-01-15T10:23:12Z",
"msg": "DB timeout",
"pid": 1234
}
用 jq 看更清楚:
cat app.log | jq .
| 日志内容 | 含义 |
|---|---|
| ECONNREFUSED | 服务没启动 / 端口错 |
| EADDRINUSE | 端口被占用 |
| ETIMEDOUT | 网络/数据库慢 |
| Cannot find module | 依赖没装 |
| UnhandledPromiseRejection | Promise 没 catch |
| Out Of Memory | 内存泄漏 |
| SIGTERM | 被系统杀掉(常见 OOM) |
systemctl status yourapp
journalctl -u yourapp -n 100
tail -f /var/log/yourapp/app.log
grep -i error app.log
free -h
df -h
top
如果你愿意,可以把一段真实日志贴出来(删掉敏感信息),我可以直接帮你“逐行翻译”并告诉你问题在哪、怎么修。