温馨提示×

ubuntu nodejs日志怎么解读

小樊
34
2026-10-06 11:32:40
栏目: 编程语言

在 Ubuntu 上解读 Node.js 日志,通常可以从日志来源、日志格式、常见错误类型、排查方法几个层面来看。下面系统讲一下。


一、Node.js 日志通常来自哪里

1. 控制台输出(最常见)

node app.js

你会看到:

  • console.log() → 普通信息
  • console.error() → 错误信息
  • 未捕获异常堆栈

2. 系统服务日志(用 systemd 启动)

如果 Node.js 是用 systemd 管理的:

journalctl -u your-node-service

或实时查看:

journalctl -u your-node-service -f

3. PM2 管理的日志

pm2 logs
pm2 logs app-name

4. 应用自身写文件

例如 winston、pino 等日志库写入:

/var/log/node-app/error.log

二、典型 Node.js 日志结构

普通日志

Server running on port 3000

✅ 正常启动信息

错误日志示例

Error: connect ECONNREFUSED 127.0.0.1:5432
    at TCPConnectWrap.afterConnect (net.js:1146:16)

含义:

  • ECONNREFUSED:连接被拒绝
  • 127.0.0.1:5432:PostgreSQL 没启动或端口不对

三、常见错误及含义对照表

错误信息 含义 排查方向
EADDRINUSE 端口被占用 换端口 / 杀进程
ECONNREFUSED 服务未启动 检查 DB / Redis
ENOENT 文件不存在 检查路径
SyntaxError JS 语法错误 看报错行号
TypeError: xxx is not a function 调用错误 检查模块导入
Cannot find module 依赖缺失 npm install
UnhandledPromiseRejection Promise 未捕获 加 catch

四、如何高效解读日志

1. 看「错误类型 + 堆栈第一行」

Error: something broke
    at app.js:23:10

→ 直接看 app.js 第 23 行

2. 区分「启动错误」还是「运行错误」

  • 启动就挂:配置 / 依赖 / 端口
  • 运行中报错:业务逻辑 / 外部服务

3. 打开调试模式

DEBUG=* node app.js

或只调试某个模块:

DEBUG=express:* node app.js

五、推荐做法(生产环境)

  • 使用日志库(winston / pino)
  • 日志分级:info / warn / error
  • 不直接 console.log
  • 配合 systemd + journalctl
  • 异常统一捕获:
process.on('uncaughtException', ...)
process.on('unhandledRejection', ...)

六、如果你愿意,我可以帮你具体看日志

你可以直接贴一段 Node.js 日志内容,我可以:

  • 逐行解读
  • 判断是配置问题还是代码问题
  • 给出具体修复命令

你现在是 本地运行 / systemd / PM2 / Docker 哪种方式?

0 踩