util.debuglog(section, callback?): Function
stringdebuglog function is being created.FunctionFunctionThe 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);
const { debuglog } = require('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);
const { debuglog } = require('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; });
const { debuglog } = require('node:util'); let log = debuglog('internals', (debug) => { // Replace with a logging function that optimizes out // testing if the section is enabled log = debug; });
debuglog().enabled
History
booleanThe 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); }
const { debuglog } = require('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]