温馨提示×

如何开启nodejs调试日志

小樊
38
2026-09-09 13:05:52
栏目: 编程语言

在 Node.js 中,“调试日志”一般有几种不同含义,下面按常见场景给你说明如何开启。


一、开启 Node.js 内部调试日志(debug 日志)

Node.js 内置了大量 NODE_DEBUG 调试模块,可通过环境变量开启。

1️⃣ 使用 NODE_DEBUG

NODE_DEBUG=http,net,tls node app.js

常用模块:

  • http
  • net
  • tls
  • fs
  • module
  • timer
  • cluster

查看所有可用模块:

node -p "process.binding('util').getOptionValue('debug-category-names')"

2️⃣ 使用 NODE_DEBUG_NATIVE(C++ 层)

NODE_DEBUG_NATIVE=1 node app.js

二、开启 V8 引擎调试日志

1️⃣ V8 日志

node --trace --trace-opt --trace-deopt app.js

常用参数:

  • --trace:函数调用
  • --trace-opt:优化
  • --trace-deopt:反优化
  • --prof:生成 V8 profile 文件

三、开启 Node.js 调试器(Debugger)

1️⃣ 旧版 debugger

node debug app.js

2️⃣ Chrome DevTools 调试(推荐)

node --inspect app.js
# 或
node --inspect-brk app.js

然后:

  • 打开 Chrome
  • 访问 chrome://inspect
  • 点击对应 target

四、开启应用层调试日志(推荐做法)

使用 debug 模块

const debug = require('debug')('myapp');
debug('hello');

开启:

DEBUG=myapp node app.js
DEBUG=* node app.js

五、日志框架示例(Winston / Pino)

const winston = require('winston');
winston.level = 'debug';

六、常见组合示例

NODE_DEBUG=http,net \
DEBUG=* \
node --inspect app.js

如果你能说明:

  • Node 内部 还是 业务代码
  • 想调试 网络 / 性能 / 内存 / 崩溃

我可以给你更精确的命令。

0