當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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])。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。