node:console returns globalThis.console and exports Console for writing to other streams, as in
Node’s console.
Example
js
// console.mjs
import { Console } from "node:console";
import { Writable } from "node:stream";
let captured = "";
const sink = new Writable({
write(chunk, _encoding, done) {
captured += chunk;
done();
},
});
const logger = new Console({ stdout: sink, stderr: sink });
logger.log("%s=%d", "retries", 3);
logger.error("failed");
logger.count("hits");
logger.count("hits");
process.stdout.write(captured);
utf-8 · js · Lines: 17
elide run console.mjs prints:
text
retries=3
failed
hits: 1
hits: 2
utf-8 · text · Lines: 4
Differences from Node
profile,profileEnd,timeStamp,context, andcreateTaskare absent.console.tablespacing and alignment differ from Node; do not parse the output.
Reference
Status: Partial · 20 of 21 suite tests pass (95.2%) · since 1.1.0
Exports
| Export | Kind | Status | Notes |
|---|---|---|---|
log() | function | Full | Prints to stdout with newline |
info() | function | Full | Alias for log() |
warn() | function | Full | Prints to stderr with newline |
error() | function | Full | Prints to stderr with newline |
debug() | function | Full | Prints to stdout with newline |
trace() | function | Full | Prints to stderr the string ‘Trace: ’ followed by a stack trace |
dir() | function | Full | Uses util.inspect() on obj and prints the resulting string to stdout |
dirxml() | function | Full | Alias for log() |
table() | function | Full | Prints a table representation of the data |
clear() | function | Full | Clears the console (when possible) |
count() | function | Full | Maintains an internal counter and outputs the number of times count() has been called with the given label |
countReset() | function | Full | Resets the internal counter for the given label |
group() | function | Full | Increases indentation of subsequent lines by spaces for grouping |
groupCollapsed() | function | Full | Alias for group() |
groupEnd() | function | Full | Decreases indentation of subsequent lines by spaces for grouping |
time() | function | Full | Starts a timer with a given label |
timeEnd() | function | Full | Stops a timer and prints elapsed time |
timeLog() | function | Full | Prints the elapsed time for a running timer without stopping it |
assert() | function | Full | Writes an error message to the console if the assertion is false |
Not implemented
context, createTask, profile, profileEnd, timeStamp.
Tests: node-api node:console: 20 pass, 1 fail, 0 error, 1 skipped. Failing: test-console-issue-43095.js.