在 Node.js 中,utils
提供了 debuglog
模块可以用于调试信息的输出。默认情况下,debuglog
的内容是不会输出的,只有当 NODE_DEBUG
这个环境变量设置了合适的值,输出才会显示。这样,调试信息不会影响正常的使用,同时也依然保留了调试的需求。
具体的使用如下:
const debuglog = require('util').debuglog('name');
debuglog('hello world: [%d]', 1);
上面的例子中,如果直接运行,是不会包含 hello world: 1
的输出的。如果设置 NODE_DEBUG
为 name
(也就是 debuglog
函数调用时设置的值),那么再次运行,hello world: 1
就会输出了。
同时,可以用逗号分隔的方式一次性为 NODE_DEBUG
设置多个值,比如:NODE_DEBUG=foo,bar
。
在 Mac 下,一次性设置 NODE_DEBUG
可以输入:
NODE_DEBUG=name node ./index.js
在 Windows 下(Powershell),设置 NODE_DEBUG
可以输入:
$env:NODE_DEBUG="name"; node ./index.js
设置完成之后,NODE_DEBUG
会一直保留着,直到 powershell 被关闭。需要删掉原先设置的 NODE_DEBUG
,可以输入:
Remove-Item env:\NODE_DEBUG