当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Node.js util.debuglog(section[, callback])用法及代码示例


util.debuglog(section[, callback])

添加于:v0.11.3

参数
  • section <string> 一个字符串,标识正在为其创建debuglog 函数的应用程序部分。
  • callback <Function> 第一次调用日志记录函数时调用的回调函数的函数参数是更优化的日志记录函数。
  • 返回: <Function> 日志记录函数

util.debuglog() 方法用于创建一个函数,该函数根据NODE_DEBUG 环境变量的存在有条件地将调试消息写入stderr。如果 section 名称出现在该环境变量的值中,则返回的函数的操作类似于 console.error() 。如果不是,则返回的函数是no-op。

const util = require('node:util');
const debuglog = util.debuglog('foo');

debuglog('hello from foo [%d]', 123);

如果这个程序在环境中使用NODE_DEBUG=foo 运行,那么它将输出如下内容:

FOO 3245: hello from foo [123]

其中 3245 是进程 ID。如果它没有使用该环境变量集运行,那么它将不会打印任何内容。

section 还支持通配符:

const util = require('node:util');
const debuglog = util.debuglog('foo-bar');

debuglog('hi there, it\'s foo-bar [%d]', 2333);

如果它在环境中使用NODE_DEBUG=foo* 运行,那么它将输出如下内容:

FOO-BAR 3257: hi there, it's foo-bar [2333]

可以在 NODE_DEBUG 环境变量中指定多个逗号分隔的 section 名称:NODE_DEBUG=fs,net,tls

可选的 callback 参数可用于将日志记录函数替换为没有任何初始化或不必要包装的不同函数。

const util = require('node:util');
let debuglog = util.debuglog('internals', (debug) => {
  // Replace with a logging function that optimizes out
  // testing if the section is enabled
  debuglog = debug;
});

debuglog().enabled#

添加于:v14.9.0

util.debuglog().enabled getter 用于创建可用于基于 NODE_DEBUG 环境变量的条件的测试。如果 section 名称出现在该环境变量的值中,则返回值将是 true 。如果不是,则返回值将是 false

const util = require('node:util');
const enabled = util.debuglog('foo').enabled;
if (enabled) {
  console.log('hello from foo [%d]', 123);
}

如果这个程序在环境中使用NODE_DEBUG=foo 运行,那么它将输出如下内容:

hello from foo [123]

相关用法


注:本文由纯净天空筛选整理自nodejs.org大神的英文原创作品 util.debuglog(section[, callback])。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。