Node util.debuglog function | API Reference | Bun
BuildDocsReferenceGuidesBlogDiscord/
node:util/
debuglogFdebuglog
Search the reference...
/
BuildDocsReferenceGuidesBlogDiscord/
node:util/
debuglogFdebuglog
function
util.debuglog {
// Replace with a logging function that optimizes out
// testing if the section is enabled
log = debug;
});
```" data-algolia-static="false" data-algolia-merged="false" data-type="Function">function
debuglog(section: string,callback?: (fn:
DebugLoggerFunction) => void):
DebugLogger;
The util.debuglog() method is used to create a function that conditionally writes debug messages to stderr based on the existence of the NODE_DEBUG environment variable. If the section name appears within the value of that environment variable, then the returned function operates similar to console.error(). If not, then the returned function is a no-op.
import { debuglog } from 'node:util';
const log = debuglog('foo');
log('hello from foo [%d]', 123);
If this program is run with NODE_DEBUG=foo in the environment, then it will output something like:
FOO 3245: hello from foo [123]
where 3245 is the process id. If it is not run with that environment variable set, then it will not print anything.
The section supports wildcard also:
import { debuglog } from 'node:util';
const log = debuglog('foo-bar');
log('hi there, it\'s foo-bar [%d]', 2333);
if it is run with NODE_DEBUG=foo* in the environment, then it will output something like:
FOO-BAR 3257: hi there, it's foo-bar [2333]
Multiple comma-separated section names may be specified in the NODE_DEBUG environment variable: NODE_DEBUG=fs,net,tls.
The optional callback argument can be used to replace the logging function with a different function that doesn't have any initialization or unnecessary wrapping.
import { debuglog } from 'node:util';
let log = debuglog('internals', (debug) => {
// Replace with a logging function that optimizes out
// testing if the section is enabled
log = debug;
});
@param section
A string identifying the portion of the application for which the debuglog function is being created.
@param callback
A callback invoked the first time the logging function is called with a function argument that is a more optimized logging function.
@returns
The logging function
Referenced typesinterface
DebugLoggerenabled: boolean
The util.debuglog().enabled getter is used to create a test that can be used in conditionals based on the existence of the NODE_DEBUG environment variable. If the section name appears within the value of that environment variable, then the returned value will be true. If not, then the returned value will be false.
import { debuglog } from 'node:util';
const enabled = debuglog('foo').enabled;
if (enabled) {
console.log('hello from foo [%d]', 123);
}
If this program is run with NODE_DEBUG=foo in the environment, then it will output something like:
hello from foo [123]
Resources
ReferenceDocsGuidesDiscordMerch StoreGitHubBlog Toolkit
RuntimePackage managerTest runnerBundlerPackage runnerProject
Bun 1.0Bun 1.1Bun 1.2Bun 1.3RoadmapContributingLicenseBaked with ❤️ in San Francisco
We're hiring →