debuglog in node.js

Node.js

在 Node.js 中,utils 提供了 debuglog 模块可以用于调试信息的输出。默认情况下,debuglog 的内容是不会输出的,只有当 NODE_DEBUG 这个环境变量设置了合适的值,输出才会显示。这样,调试信息不会影响正常的使用,同时也依然保留了调试的需求。

具体的使用如下:

const debuglog = require('util').debuglog('name');

debuglog('hello world: [%d]', 1);

上面的例子中,如果直接运行,是不会包含 hello world: 1 的输出的。如果设置 NODE_DEBUGname(也就是 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