lts/doc/api/console.json
{
"type": "module",
"source": "doc/api/console.md",
"modules": [
{
"textRaw": "Console",
"name": "console",
"introduced_in": "v0.10.13",
"stability": 2,
"stabilityText": "Stable",
"desc": "<p>The <code>console</code> module provides a simple debugging console that is similar to the\nJavaScript console mechanism provided by web browsers.</p>\n<p>The module exports two specific components:</p>\n<ul>\n<li>A <code>Console</code> class with methods such as <code>console.log()</code>, <code>console.error()</code> and\n<code>console.warn()</code> that can be used to write to any Node.js stream.</li>\n<li>A global <code>console</code> instance configured to write to <a href=\"process.html#process_process_stdout\"><code>process.stdout</code></a> and\n<a href=\"process.html#process_process_stderr\"><code>process.stderr</code></a>. The global <code>console</code> can be used without calling\n<code>require('console')</code>.</li>\n</ul>\n<p><strong><em>Warning</em></strong>: The global console object's methods are neither consistently\nsynchronous like the browser APIs they resemble, nor are they consistently\nasynchronous like all other Node.js streams. See the <a href=\"process.html#process_a_note_on_process_i_o\">note on process I/O</a> for\nmore information.</p>\n<p>Example using the global <code>console</code>:</p>\n<pre><code class=\"language-js\">console.log('hello world');\n// Prints: hello world, to stdout\nconsole.log('hello %s', 'world');\n// Prints: hello world, to stdout\nconsole.error(new Error('Whoops, something bad happened'));\n// Prints: [Error: Whoops, something bad happened], to stderr\n\nconst name = 'Will Robinson';\nconsole.warn(`Danger ${name}! Danger!`);\n// Prints: Danger Will Robinson! Danger!, to stderr\n</code></pre>\n<p>Example using the <code>Console</code> class:</p>\n<pre><code class=\"language-js\">const out = getStreamSomehow();\nconst err = getStreamSomehow();\nconst myConsole = new console.Console(out, err);\n\nmyConsole.log('hello world');\n// Prints: hello world, to out\nmyConsole.log('hello %s', 'world');\n// Prints: hello world, to out\nmyConsole.error(new Error('Whoops, something bad happened'));\n// Prints: [Error: Whoops, something bad happened], to err\n\nconst name = 'Will Robinson';\nmyConsole.warn(`Danger ${name}! Danger!`);\n// Prints: Danger Will Robinson! Danger!, to err\n</code></pre>",
"classes": [
{
"textRaw": "Class: `Console`",
"type": "class",
"name": "Console",
"meta": {
"changes": [
{
"version": "v8.0.0",
"pr-url": "https://github.com/nodejs/node/pull/9744",
"description": "Errors that occur while writing to the underlying streams will now be ignored by default."
}
]
},
"desc": "<p>The <code>Console</code> class can be used to create a simple logger with configurable\noutput streams and can be accessed using either <code>require('console').Console</code>\nor <code>console.Console</code> (or their destructured counterparts):</p>\n<pre><code class=\"language-js\">const { Console } = require('console');\n</code></pre>\n<pre><code class=\"language-js\">const { Console } = console;\n</code></pre>",
"methods": [
{
"textRaw": "`console.assert(value[, ...message])`",
"type": "method",
"name": "assert",
"meta": {
"added": [
"v0.1.101"
],
"changes": [
{
"version": "v10.0.0",
"pr-url": "https://github.com/nodejs/node/pull/17706",
"description": "The implementation is now spec compliant and does not throw anymore."
}
]
},
"signatures": [
{
"params": [
{
"textRaw": "`value` {any} The value tested for being truthy.",
"name": "value",
"type": "any",
"desc": "The value tested for being truthy."
},
{
"textRaw": "`...message` {any} All arguments besides `value` are used as error message.",
"name": "...message",
"type": "any",
"desc": "All arguments besides `value` are used as error message."
}
]
}
],
"desc": "<p>A simple assertion test that verifies whether <code>value</code> is truthy. If it is not,\n<code>Assertion failed</code> is logged. If provided, the error <code>message</code> is formatted\nusing <a href=\"util.html#util_util_format_format_args\"><code>util.format()</code></a> by passing along all message arguments. The output is\nused as the error message.</p>\n<pre><code class=\"language-js\">console.assert(true, 'does nothing');\n// OK\nconsole.assert(false, 'Whoops %s work', 'didn\\'t');\n// Assertion failed: Whoops didn't work\n</code></pre>\n<p>Calling <code>console.assert()</code> with a falsy assertion will only cause the <code>message</code>\nto be printed to the console without interrupting execution of subsequent code.</p>"
},
{
"textRaw": "`console.clear()`",
"type": "method",
"name": "clear",
"meta": {
"added": [
"v8.3.0"
],
"changes": []
},
"signatures": [
{
"params": []
}
],
"desc": "<p>When <code>stdout</code> is a TTY, calling <code>console.clear()</code> will attempt to clear the\nTTY. When <code>stdout</code> is not a TTY, this method does nothing.</p>\n<p>The specific operation of <code>console.clear()</code> can vary across operating systems\nand terminal types. For most Linux operating systems, <code>console.clear()</code>\noperates similarly to the <code>clear</code> shell command. On Windows, <code>console.clear()</code>\nwill clear only the output in the current terminal viewport for the Node.js\nbinary.</p>"
},
{
"textRaw": "`console.count([label])`",
"type": "method",
"name": "count",
"meta": {
"added": [
"v8.3.0"
],
"changes": []
},
"signatures": [
{
"params": [
{
"textRaw": "`label` {string} The display label for the counter. **Default:** `'default'`.",
"name": "label",
"type": "string",
"default": "`'default'`",
"desc": "The display label for the counter."
}
]
}
],
"desc": "<p>Maintains an internal counter specific to <code>label</code> and outputs to <code>stdout</code> the\nnumber of times <code>console.count()</code> has been called with the given <code>label</code>.</p>\n<!-- eslint-skip -->\n<pre><code class=\"language-js\">> console.count()\ndefault: 1\nundefined\n> console.count('default')\ndefault: 2\nundefined\n> console.count('abc')\nabc: 1\nundefined\n> console.count('xyz')\nxyz: 1\nundefined\n> console.count('abc')\nabc: 2\nundefined\n> console.count()\ndefault: 3\nundefined\n>\n</code></pre>"
},
{
"textRaw": "`console.countReset([label])`",
"type": "method",
"name": "countReset",
"meta": {
"added": [
"v8.3.0"
],
"changes": []
},
"signatures": [
{
"params": [
{
"textRaw": "`label` {string} The display label for the counter. **Default:** `'default'`.",
"name": "label",
"type": "string",
"default": "`'default'`",
"desc": "The display label for the counter."
}
]
}
],
"desc": "<p>Resets the internal counter specific to <code>label</code>.</p>\n<!-- eslint-skip -->\n<pre><code class=\"language-js\">> console.count('abc');\nabc: 1\nundefined\n> console.countReset('abc');\nundefined\n> console.count('abc');\nabc: 1\nundefined\n>\n</code></pre>"
},
{
"textRaw": "`console.debug(data[, ...args])`",
"type": "method",
"name": "debug",
"meta": {
"added": [
"v8.0.0"
],
"changes": [
{
"version": "v8.10.0",
"pr-url": "https://github.com/nodejs/node/pull/17033",
"description": "`console.debug` is now an alias for `console.log`."
}
]
},
"signatures": [
{
"params": [
{
"textRaw": "`data` {any}",
"name": "data",
"type": "any"
},
{
"textRaw": "`...args` {any}",
"name": "...args",
"type": "any"
}
]
}
],
"desc": "<p>The <code>console.debug()</code> function is an alias for <a href=\"#console_console_log_data_args\"><code>console.log()</code></a>.</p>"
},
{
"textRaw": "`console.dir(obj[, options])`",
"type": "method",
"name": "dir",
"meta": {
"added": [
"v0.1.101"
],
"changes": []
},
"signatures": [
{
"params": [
{
"textRaw": "`obj` {any}",
"name": "obj",
"type": "any"
},
{
"textRaw": "`options` {Object}",
"name": "options",
"type": "Object",
"options": [
{
"textRaw": "`showHidden` {boolean} If `true` then the object's non-enumerable and symbol properties will be shown too. **Default:** `false`.",
"name": "showHidden",
"type": "boolean",
"default": "`false`",
"desc": "If `true` then the object's non-enumerable and symbol properties will be shown too."
},
{
"textRaw": "`depth` {number} Tells [`util.inspect()`][] how many times to recurse while formatting the object. This is useful for inspecting large complicated objects. To make it recurse indefinitely, pass `null`. **Default:** `2`.",
"name": "depth",
"type": "number",
"default": "`2`",
"desc": "Tells [`util.inspect()`][] how many times to recurse while formatting the object. This is useful for inspecting large complicated objects. To make it recurse indefinitely, pass `null`."
},
{
"textRaw": "`colors` {boolean} If `true`, then the output will be styled with ANSI color codes. Colors are customizable; see [customizing `util.inspect()` colors][]. **Default:** `false`.",
"name": "colors",
"type": "boolean",
"default": "`false`",
"desc": "If `true`, then the output will be styled with ANSI color codes. Colors are customizable; see [customizing `util.inspect()` colors][]."
}
]
}
]
}
],
"desc": "<p>Uses <a href=\"util.html#util_util_inspect_object_options\"><code>util.inspect()</code></a> on <code>obj</code> and prints the resulting string to <code>stdout</code>.\nThis function bypasses any custom <code>inspect()</code> function defined on <code>obj</code>.</p>"
},
{
"textRaw": "`console.dirxml(...data)`",
"type": "method",
"name": "dirxml",
"meta": {
"added": [
"v8.0.0"
],
"changes": [
{
"version": "v9.3.0",
"pr-url": "https://github.com/nodejs/node/pull/17152",
"description": "`console.dirxml` now calls `console.log` for its arguments."
}
]
},
"signatures": [
{
"params": [
{
"textRaw": "`...data` {any}",
"name": "...data",
"type": "any"
}
]
}
],
"desc": "<p>This method calls <code>console.log()</code> passing it the arguments received.\nThis method does not produce any XML formatting.</p>"
},
{
"textRaw": "`console.error([data][, ...args])`",
"type": "method",
"name": "error",
"meta": {
"added": [
"v0.1.100"
],
"changes": []
},
"signatures": [
{
"params": [
{
"textRaw": "`data` {any}",
"name": "data",
"type": "any"
},
{
"textRaw": "`...args` {any}",
"name": "...args",
"type": "any"
}
]
}
],
"desc": "<p>Prints to <code>stderr</code> with newline. Multiple arguments can be passed, with the\nfirst used as the primary message and all additional used as substitution\nvalues similar to <a href=\"http://man7.org/linux/man-pages/man3/printf.3.html\"><code>printf(3)</code></a> (the arguments are all passed to\n<a href=\"util.html#util_util_format_format_args\"><code>util.format()</code></a>).</p>\n<pre><code class=\"language-js\">const code = 5;\nconsole.error('error #%d', code);\n// Prints: error #5, to stderr\nconsole.error('error', code);\n// Prints: error 5, to stderr\n</code></pre>\n<p>If formatting elements (e.g. <code>%d</code>) are not found in the first string then\n<a href=\"util.html#util_util_inspect_object_options\"><code>util.inspect()</code></a> is called on each argument and the resulting string\nvalues are concatenated. See <a href=\"util.html#util_util_format_format_args\"><code>util.format()</code></a> for more information.</p>"
},
{
"textRaw": "`console.group([...label])`",
"type": "method",
"name": "group",
"meta": {
"added": [
"v8.5.0"
],
"changes": []
},
"signatures": [
{
"params": [
{
"textRaw": "`...label` {any}",
"name": "...label",
"type": "any"
}
]
}
],
"desc": "<p>Increases indentation of subsequent lines by spaces for <code>groupIndentation</code>\nlength.</p>\n<p>If one or more <code>label</code>s are provided, those are printed first without the\nadditional indentation.</p>"
},
{
"textRaw": "`console.groupCollapsed()`",
"type": "method",
"name": "groupCollapsed",
"meta": {
"added": [
"v8.5.0"
],
"changes": []
},
"signatures": [
{
"params": []
}
],
"desc": "<p>An alias for <a href=\"#console_console_group_label\"><code>console.group()</code></a>.</p>"
},
{
"textRaw": "`console.groupEnd()`",
"type": "method",
"name": "groupEnd",
"meta": {
"added": [
"v8.5.0"
],
"changes": []
},
"signatures": [
{
"params": []
}
],
"desc": "<p>Decreases indentation of subsequent lines by spaces for <code>groupIndentation</code>\nlength.</p>"
},
{
"textRaw": "`console.info([data][, ...args])`",
"type": "method",
"name": "info",
"meta": {
"added": [
"v0.1.100"
],
"changes": []
},
"signatures": [
{
"params": [
{
"textRaw": "`data` {any}",
"name": "data",
"type": "any"
},
{
"textRaw": "`...args` {any}",
"name": "...args",
"type": "any"
}
]
}
],
"desc": "<p>The <code>console.info()</code> function is an alias for <a href=\"#console_console_log_data_args\"><code>console.log()</code></a>.</p>"
},
{
"textRaw": "`console.log([data][, ...args])`",
"type": "method",
"name": "log",
"meta": {
"added": [
"v0.1.100"
],
"changes": []
},
"signatures": [
{
"params": [
{
"textRaw": "`data` {any}",
"name": "data",
"type": "any"
},
{
"textRaw": "`...args` {any}",
"name": "...args",
"type": "any"
}
]
}
],
"desc": "<p>Prints to <code>stdout</code> with newline. Multiple arguments can be passed, with the\nfirst used as the primary message and all additional used as substitution\nvalues similar to <a href=\"http://man7.org/linux/man-pages/man3/printf.3.html\"><code>printf(3)</code></a> (the arguments are all passed to\n<a href=\"util.html#util_util_format_format_args\"><code>util.format()</code></a>).</p>\n<pre><code class=\"language-js\">const count = 5;\nconsole.log('count: %d', count);\n// Prints: count: 5, to stdout\nconsole.log('count:', count);\n// Prints: count: 5, to stdout\n</code></pre>\n<p>See <a href=\"util.html#util_util_format_format_args\"><code>util.format()</code></a> for more information.</p>"
},
{
"textRaw": "`console.table(tabularData[, properties])`",
"type": "method",
"name": "table",
"meta": {
"added": [
"v10.0.0"
],
"changes": []
},
"signatures": [
{
"params": [
{
"textRaw": "`tabularData` {any}",
"name": "tabularData",
"type": "any"
},
{
"textRaw": "`properties` {string[]} Alternate properties for constructing the table.",
"name": "properties",
"type": "string[]",
"desc": "Alternate properties for constructing the table."
}
]
}
],
"desc": "<p>Try to construct a table with the columns of the properties of <code>tabularData</code>\n(or use <code>properties</code>) and rows of <code>tabularData</code> and log it. Falls back to just\nlogging the argument if it can’t be parsed as tabular.</p>\n<pre><code class=\"language-js\">// These can't be parsed as tabular data\nconsole.table(Symbol());\n// Symbol()\n\nconsole.table(undefined);\n// undefined\n\nconsole.table([{ a: 1, b: 'Y' }, { a: 'Z', b: 2 }]);\n// ┌─────────┬─────┬─────┐\n// │ (index) │ a │ b │\n// ├─────────┼─────┼─────┤\n// │ 0 │ 1 │ 'Y' │\n// │ 1 │ 'Z' │ 2 │\n// └─────────┴─────┴─────┘\n\nconsole.table([{ a: 1, b: 'Y' }, { a: 'Z', b: 2 }], ['a']);\n// ┌─────────┬─────┐\n// │ (index) │ a │\n// ├─────────┼─────┤\n// │ 0 │ 1 │\n// │ 1 │ 'Z' │\n// └─────────┴─────┘\n</code></pre>"
},
{
"textRaw": "`console.time([label])`",
"type": "method",
"name": "time",
"meta": {
"added": [
"v0.1.104"
],
"changes": []
},
"signatures": [
{
"params": [
{
"textRaw": "`label` {string} **Default:** `'default'`",
"name": "label",
"type": "string",
"default": "`'default'`"
}
]
}
],
"desc": "<p>Starts a timer that can be used to compute the duration of an operation. Timers\nare identified by a unique <code>label</code>. Use the same <code>label</code> when calling\n<a href=\"#console_console_timeend_label\"><code>console.timeEnd()</code></a> to stop the timer and output the elapsed time in\nmilliseconds to <code>stdout</code>. Timer durations are accurate to the sub-millisecond.</p>"
},
{
"textRaw": "`console.timeEnd([label])`",
"type": "method",
"name": "timeEnd",
"meta": {
"added": [
"v0.1.104"
],
"changes": [
{
"version": "v6.0.0",
"pr-url": "https://github.com/nodejs/node/pull/5901",
"description": "This method no longer supports multiple calls that don’t map to individual `console.time()` calls; see below for details."
}
]
},
"signatures": [
{
"params": [
{
"textRaw": "`label` {string} **Default:** `'default'`",
"name": "label",
"type": "string",
"default": "`'default'`"
}
]
}
],
"desc": "<p>Stops a timer that was previously started by calling <a href=\"#console_console_time_label\"><code>console.time()</code></a> and\nprints the result to <code>stdout</code>:</p>\n<pre><code class=\"language-js\">console.time('100-elements');\nfor (let i = 0; i < 100; i++) {}\nconsole.timeEnd('100-elements');\n// prints 100-elements: 225.438ms\n</code></pre>"
},
{
"textRaw": "`console.timeLog([label][, ...data])`",
"type": "method",
"name": "timeLog",
"meta": {
"added": [
"v10.7.0"
],
"changes": []
},
"signatures": [
{
"params": [
{
"textRaw": "`label` {string} **Default:** `'default'`",
"name": "label",
"type": "string",
"default": "`'default'`"
},
{
"textRaw": "`...data` {any}",
"name": "...data",
"type": "any"
}
]
}
],
"desc": "<p>For a timer that was previously started by calling <a href=\"#console_console_time_label\"><code>console.time()</code></a>, prints\nthe elapsed time and other <code>data</code> arguments to <code>stdout</code>:</p>\n<pre><code class=\"language-js\">console.time('process');\nconst value = expensiveProcess1(); // Returns 42\nconsole.timeLog('process', value);\n// Prints \"process: 365.227ms 42\".\ndoExpensiveProcess2(value);\nconsole.timeEnd('process');\n</code></pre>"
},
{
"textRaw": "`console.trace([message][, ...args])`",
"type": "method",
"name": "trace",
"meta": {
"added": [
"v0.1.104"
],
"changes": []
},
"signatures": [
{
"params": [
{
"textRaw": "`message` {any}",
"name": "message",
"type": "any"
},
{
"textRaw": "`...args` {any}",
"name": "...args",
"type": "any"
}
]
}
],
"desc": "<p>Prints to <code>stderr</code> the string <code>'Trace: '</code>, followed by the <a href=\"util.html#util_util_format_format_args\"><code>util.format()</code></a>\nformatted message and stack trace to the current position in the code.</p>\n<pre><code class=\"language-js\">console.trace('Show me');\n// Prints: (stack trace will vary based on where trace is called)\n// Trace: Show me\n// at repl:2:9\n// at REPLServer.defaultEval (repl.js:248:27)\n// at bound (domain.js:287:14)\n// at REPLServer.runBound [as eval] (domain.js:300:12)\n// at REPLServer.<anonymous> (repl.js:412:12)\n// at emitOne (events.js:82:20)\n// at REPLServer.emit (events.js:169:7)\n// at REPLServer.Interface._onLine (readline.js:210:10)\n// at REPLServer.Interface._line (readline.js:549:8)\n// at REPLServer.Interface._ttyWrite (readline.js:826:14)\n</code></pre>"
},
{
"textRaw": "`console.warn([data][, ...args])`",
"type": "method",
"name": "warn",
"meta": {
"added": [
"v0.1.100"
],
"changes": []
},
"signatures": [
{
"params": [
{
"textRaw": "`data` {any}",
"name": "data",
"type": "any"
},
{
"textRaw": "`...args` {any}",
"name": "...args",
"type": "any"
}
]
}
],
"desc": "<p>The <code>console.warn()</code> function is an alias for <a href=\"#console_console_error_data_args\"><code>console.error()</code></a>.</p>"
}
],
"signatures": [
{
"params": [
{
"textRaw": "`options` {Object}",
"name": "options",
"type": "Object",
"options": [
{
"textRaw": "`stdout` {stream.Writable}",
"name": "stdout",
"type": "stream.Writable"
},
{
"textRaw": "`stderr` {stream.Writable}",
"name": "stderr",
"type": "stream.Writable"
},
{
"textRaw": "`ignoreErrors` {boolean} Ignore errors when writing to the underlying streams. **Default:** `true`.",
"name": "ignoreErrors",
"type": "boolean",
"default": "`true`",
"desc": "Ignore errors when writing to the underlying streams."
},
{
"textRaw": "`colorMode` {boolean|string} Set color support for this `Console` instance. Setting to `true` enables coloring while inspecting values. Setting to `false` disables coloring while inspecting values. Setting to `'auto'` makes color support depend on the value of the `isTTY` property and the value returned by `getColorDepth()` on the respective stream. This option can not be used, if `inspectOptions.colors` is set as well. **Default:** `'auto'`.",
"name": "colorMode",
"type": "boolean|string",
"default": "`'auto'`",
"desc": "Set color support for this `Console` instance. Setting to `true` enables coloring while inspecting values. Setting to `false` disables coloring while inspecting values. Setting to `'auto'` makes color support depend on the value of the `isTTY` property and the value returned by `getColorDepth()` on the respective stream. This option can not be used, if `inspectOptions.colors` is set as well."
},
{
"textRaw": "`inspectOptions` {Object} Specifies options that are passed along to [`util.inspect()`][].",
"name": "inspectOptions",
"type": "Object",
"desc": "Specifies options that are passed along to [`util.inspect()`][]."
},
{
"textRaw": "`groupIndentation` {number} Set group indentation. **Default:** `2`.",
"name": "groupIndentation",
"type": "number",
"default": "`2`",
"desc": "Set group indentation."
}
]
}
],
"desc": "<p>Creates a new <code>Console</code> with one or two writable stream instances. <code>stdout</code> is a\nwritable stream to print log or info output. <code>stderr</code> is used for warning or\nerror output. If <code>stderr</code> is not provided, <code>stdout</code> is used for <code>stderr</code>.</p>\n<pre><code class=\"language-js\">const output = fs.createWriteStream('./stdout.log');\nconst errorOutput = fs.createWriteStream('./stderr.log');\n// Custom simple logger\nconst logger = new Console({ stdout: output, stderr: errorOutput });\n// use it like console\nconst count = 5;\nlogger.log('count: %d', count);\n// In stdout.log: count 5\n</code></pre>\n<p>The global <code>console</code> is a special <code>Console</code> whose output is sent to\n<a href=\"process.html#process_process_stdout\"><code>process.stdout</code></a> and <a href=\"process.html#process_process_stderr\"><code>process.stderr</code></a>. It is equivalent to calling:</p>\n<pre><code class=\"language-js\">new Console({ stdout: process.stdout, stderr: process.stderr });\n</code></pre>"
},
{
"params": [
{
"textRaw": "`options` {Object}",
"name": "options",
"type": "Object",
"options": [
{
"textRaw": "`stdout` {stream.Writable}",
"name": "stdout",
"type": "stream.Writable"
},
{
"textRaw": "`stderr` {stream.Writable}",
"name": "stderr",
"type": "stream.Writable"
},
{
"textRaw": "`ignoreErrors` {boolean} Ignore errors when writing to the underlying streams. **Default:** `true`.",
"name": "ignoreErrors",
"type": "boolean",
"default": "`true`",
"desc": "Ignore errors when writing to the underlying streams."
},
{
"textRaw": "`colorMode` {boolean|string} Set color support for this `Console` instance. Setting to `true` enables coloring while inspecting values. Setting to `false` disables coloring while inspecting values. Setting to `'auto'` makes color support depend on the value of the `isTTY` property and the value returned by `getColorDepth()` on the respective stream. This option can not be used, if `inspectOptions.colors` is set as well. **Default:** `'auto'`.",
"name": "colorMode",
"type": "boolean|string",
"default": "`'auto'`",
"desc": "Set color support for this `Console` instance. Setting to `true` enables coloring while inspecting values. Setting to `false` disables coloring while inspecting values. Setting to `'auto'` makes color support depend on the value of the `isTTY` property and the value returned by `getColorDepth()` on the respective stream. This option can not be used, if `inspectOptions.colors` is set as well."
},
{
"textRaw": "`inspectOptions` {Object} Specifies options that are passed along to [`util.inspect()`][].",
"name": "inspectOptions",
"type": "Object",
"desc": "Specifies options that are passed along to [`util.inspect()`][]."
},
{
"textRaw": "`groupIndentation` {number} Set group indentation. **Default:** `2`.",
"name": "groupIndentation",
"type": "number",
"default": "`2`",
"desc": "Set group indentation."
}
]
}
],
"desc": "<p>Creates a new <code>Console</code> with one or two writable stream instances. <code>stdout</code> is a\nwritable stream to print log or info output. <code>stderr</code> is used for warning or\nerror output. If <code>stderr</code> is not provided, <code>stdout</code> is used for <code>stderr</code>.</p>\n<pre><code class=\"language-js\">const output = fs.createWriteStream('./stdout.log');\nconst errorOutput = fs.createWriteStream('./stderr.log');\n// Custom simple logger\nconst logger = new Console({ stdout: output, stderr: errorOutput });\n// use it like console\nconst count = 5;\nlogger.log('count: %d', count);\n// In stdout.log: count 5\n</code></pre>\n<p>The global <code>console</code> is a special <code>Console</code> whose output is sent to\n<a href=\"process.html#process_process_stdout\"><code>process.stdout</code></a> and <a href=\"process.html#process_process_stderr\"><code>process.stderr</code></a>. It is equivalent to calling:</p>\n<pre><code class=\"language-js\">new Console({ stdout: process.stdout, stderr: process.stderr });\n</code></pre>"
}
]
}
],
"modules": [
{
"textRaw": "Inspector only methods",
"name": "inspector_only_methods",
"desc": "<p>The following methods are exposed by the V8 engine in the general API but do\nnot display anything unless used in conjunction with the <a href=\"debugger.html\">inspector</a>\n(<code>--inspect</code> flag).</p>",
"methods": [
{
"textRaw": "`console.profile([label])`",
"type": "method",
"name": "profile",
"meta": {
"added": [
"v8.0.0"
],
"changes": []
},
"signatures": [
{
"params": [
{
"textRaw": "`label` {string}",
"name": "label",
"type": "string"
}
]
}
],
"desc": "<p>This method does not display anything unless used in the inspector. The\n<code>console.profile()</code> method starts a JavaScript CPU profile with an optional\nlabel until <a href=\"#console_console_profileend_label\"><code>console.profileEnd()</code></a> is called. The profile is then added to\nthe <strong>Profile</strong> panel of the inspector.</p>\n<pre><code class=\"language-js\">console.profile('MyLabel');\n// Some code\nconsole.profileEnd('MyLabel');\n// Adds the profile 'MyLabel' to the Profiles panel of the inspector.\n</code></pre>"
},
{
"textRaw": "`console.profileEnd([label])`",
"type": "method",
"name": "profileEnd",
"meta": {
"added": [
"v8.0.0"
],
"changes": []
},
"signatures": [
{
"params": [
{
"textRaw": "`label` {string}",
"name": "label",
"type": "string"
}
]
}
],
"desc": "<p>This method does not display anything unless used in the inspector. Stops the\ncurrent JavaScript CPU profiling session if one has been started and prints\nthe report to the <strong>Profiles</strong> panel of the inspector. See\n<a href=\"#console_console_profile_label\"><code>console.profile()</code></a> for an example.</p>\n<p>If this method is called without a label, the most recently started profile is\nstopped.</p>"
},
{
"textRaw": "`console.timeStamp([label])`",
"type": "method",
"name": "timeStamp",
"meta": {
"added": [
"v8.0.0"
],
"changes": []
},
"signatures": [
{
"params": [
{
"textRaw": "`label` {string}",
"name": "label",
"type": "string"
}
]
}
],
"desc": "<p>This method does not display anything unless used in the inspector. The\n<code>console.timeStamp()</code> method adds an event with the label <code>'label'</code> to the\n<strong>Timeline</strong> panel of the inspector.</p>"
}
],
"type": "module",
"displayName": "Inspector only methods"
}
],
"type": "module",
"displayName": "Console"
}
]
}