读懂 Debian 系统上 Node.js 的日志,关键先看日志从哪里来,再看日志里写了什么。下面按常见场景给你一个实用指南。
console.log / console.error默认输出位置:
如果你用 systemctl 启动 Node.js:
systemctl status mynodeapp
journalctl -u mynodeapp
journalctl -u mynodeapp -f
说明:
journalctl 是 Debian 的日志系统-f 实时跟踪pm2 logs
pm2 logs appname
pm2 logs --lines 100
PM2 日志默认在:
~/.pm2/logs/
docker logs container_name
docker logs -f container_name
常见级别(从左到右严重度递增):
INFO < WARN < ERROR < FATAL
示例:
ERROR Cannot read properties of undefined (reading 'id')
→ 说明代码访问了不存在的对象
Node.js 错误通常长这样:
TypeError: Cannot read property 'x' of undefined
at app.get (/var/www/app/index.js:23:15)
怎么读:
TypeError → 类型错误index.js:23:15 → 文件第 23 行第 15 列Debian 日志通常带时间:
Mar 15 10:22:31 node[1234]: Server started on port 3000
用途:
如果是 Web 服务(Express / NestJS):
GET /api/user 500 12ms
含义:
| 日志内容 | 含义 |
|---|---|
| EADDRINUSE | 端口被占用 |
| Cannot find module | 依赖没装 |
| UnhandledPromiseRejection | Promise 没 catch |
| ETIMEDOUT | 网络/数据库超时 |
| SIGTERM | 被系统停止(正常) |
journalctl如果你愿意,可以把一段真实日志贴出来,我可以直接帮你逐行解释是哪出了问题。