{"type":"module","source":"doc\/api\/console.md","modules":[{"textRaw":"Console","name":"console","introduced_in":"v0.10.13","stability":2,"stabilityText":"Stable","desc":"<p><strong>Source Code:<\/strong> <a href=\"https:\/\/github.com\/nodejs\/node\/blob\/v17.9.1\/lib\/console.js\">lib\/console.js<\/a><\/p>\n<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#processstdout\"><code>process.stdout<\/code><\/a> and\n<a href=\"process.html#processstderr\"><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><em><strong>Warning<\/strong><\/em>: 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#a-note-on-process-io\">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 message and stack trace to stderr:\n\/\/   Error: Whoops, something bad happened\n\/\/     at [eval]:5:15\n\/\/     at Script.runInThisContext (node:vm:132:18)\n\/\/     at Object.runInThisContext (node:vm:309:38)\n\/\/     at node:internal\/process\/execution:77:19\n\/\/     at [eval]-wrapper:6:22\n\/\/     at evalScript (node:internal\/process\/execution:76:60)\n\/\/     at node:internal\/main\/eval_string:23:3\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><code>console.assert()<\/code> writes a message if <code>value<\/code> is <a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Glossary\/Falsy\">falsy<\/a> or omitted. It only\nwrites a message and does not otherwise affect execution. The output always\nstarts with <code>\"Assertion failed\"<\/code>. If provided, <code>message<\/code> is formatted using\n<a href=\"util.html#utilformatformat-args\"><code>util.format()<\/code><\/a>.<\/p>\n<p>If <code>value<\/code> is <a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Glossary\/Truthy\">truthy<\/a>, nothing happens.<\/p>\n<pre><code class=\"language-js\">console.assert(true, 'does nothing');\n\nconsole.assert(false, 'Whoops %s work', 'didn\\'t');\n\/\/ Assertion failed: Whoops didn't work\n\nconsole.assert();\n\/\/ Assertion failed\n<\/code><\/pre>"},{"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=\"#consolelogdata-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#utilinspectobject-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#utilformatformat-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#utilinspectobject-options\"><code>util.inspect()<\/code><\/a> is called on each argument and the resulting string\nvalues are concatenated. See <a href=\"util.html#utilformatformat-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=\"#consolegrouplabel\"><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=\"#consolelogdata-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#utilformatformat-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#utilformatformat-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\u2019t 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\/\/ \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2510\n\/\/ \u2502 (index) \u2502  a  \u2502  b  \u2502\n\/\/ \u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2524\n\/\/ \u2502    0    \u2502  1  \u2502 'Y' \u2502\n\/\/ \u2502    1    \u2502 'Z' \u2502  2  \u2502\n\/\/ \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2518\n\nconsole.table([{ a: 1, b: 'Y' }, { a: 'Z', b: 2 }], ['a']);\n\/\/ \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2510\n\/\/ \u2502 (index) \u2502  a  \u2502\n\/\/ \u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2524\n\/\/ \u2502    0    \u2502  1  \u2502\n\/\/ \u2502    1    \u2502 'Z' \u2502\n\/\/ \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2518\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=\"#consoletimeendlabel\"><code>console.timeEnd()<\/code><\/a> to stop the timer and output the elapsed time in\nsuitable time units to <code>stdout<\/code>. For example, if the elapsed\ntime is 3869ms, <code>console.timeEnd()<\/code> displays \"3.869s\".<\/p>"},{"textRaw":"`console.timeEnd([label])`","type":"method","name":"timeEnd","meta":{"added":["v0.1.104"],"changes":[{"version":"v13.0.0","pr-url":"https:\/\/github.com\/nodejs\/node\/pull\/29251","description":"The elapsed time is displayed with a suitable time unit."},{"version":"v6.0.0","pr-url":"https:\/\/github.com\/nodejs\/node\/pull\/5901","description":"This method no longer supports multiple calls that don\u2019t 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=\"#consoletimelabel\"><code>console.time()<\/code><\/a> and\nprints the result to <code>stdout<\/code>:<\/p>\n<pre><code class=\"language-js\">console.time('bunch-of-stuff');\n\/\/ Do a bunch of stuff.\nconsole.timeEnd('bunch-of-stuff');\n\/\/ Prints: bunch-of-stuff: 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=\"#consoletimelabel\"><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#utilformatformat-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.&#x3C;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=\"#consoleerrordata-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#processstdout\"><code>process.stdout<\/code><\/a> and <a href=\"process.html#processstderr\"><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#processstdout\"><code>process.stdout<\/code><\/a> and <a href=\"process.html#processstderr\"><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=\"#consoleprofileendlabel\"><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=\"#consoleprofilelabel\"><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"}]}