Konsole
[Stabil: 2 - Stabil]
Stabil: 2 Stabilität: 2 - Stabil
Quellcode: lib/console.js
Das node:console
-Modul bietet eine einfache Debugging-Konsole, die dem JavaScript-Konsolenmechanismus ähnelt, der von Webbrowsern bereitgestellt wird.
Das Modul exportiert zwei spezifische Komponenten:
- Eine
Console
-Klasse mit Methoden wieconsole.log()
,console.error()
undconsole.warn()
, die verwendet werden können, um in einen beliebigen Node.js-Stream zu schreiben. - Eine globale
console
-Instanz, die so konfiguriert ist, dass sie inprocess.stdout
undprocess.stderr
schreibt. Die globaleconsole
kann verwendet werden, ohnerequire('node:console')
aufzurufen.
Warnung: Die Methoden des globalen Konsolenobjekts sind weder konsistent synchron wie die Browser-APIs, denen sie ähneln, noch sind sie konsistent asynchron wie alle anderen Node.js-Streams. Programme, die von dem synchronen/asynchronen Verhalten der Konsolenfunktionen abhängen möchten, sollten zuerst die Art des zugrunde liegenden Streams der Konsole herausfinden. Dies liegt daran, dass der Stream von der zugrunde liegenden Plattform und der Standard-Stream-Konfiguration des aktuellen Prozesses abhängt. Weitere Informationen finden Sie im Hinweis zu Prozess-I/O.
Beispiel mit der globalen console
:
console.log('hello world');
// Gibt aus: hello world, nach stdout
console.log('hello %s', 'world');
// Gibt aus: hello world, nach stdout
console.error(new Error('Hoppla, da ist etwas Schlimmes passiert'));
// Gibt Fehlermeldung und Stack-Trace nach stderr aus:
// Error: Hoppla, da ist etwas Schlimmes passiert
// at [eval]:5:15
// at Script.runInThisContext (node:vm:132:18)
// at Object.runInThisContext (node:vm:309:38)
// at node:internal/process/execution:77:19
// at [eval]-wrapper:6:22
// at evalScript (node:internal/process/execution:76:60)
// at node:internal/main/eval_string:23:3
const name = 'Will Robinson';
console.warn(`Gefahr ${name}! Gefahr!`);
// Gibt aus: Gefahr Will Robinson! Gefahr!, nach stderr
Beispiel mit der Console
-Klasse:
const out = getStreamSomehow();
const err = getStreamSomehow();
const myConsole = new console.Console(out, err);
myConsole.log('hello world');
// Gibt aus: hello world, nach out
myConsole.log('hello %s', 'world');
// Gibt aus: hello world, nach out
myConsole.error(new Error('Hoppla, da ist etwas Schlimmes passiert'));
// Gibt aus: [Error: Hoppla, da ist etwas Schlimmes passiert], nach err
const name = 'Will Robinson';
myConsole.warn(`Gefahr ${name}! Gefahr!`);
// Gibt aus: Gefahr Will Robinson! Gefahr!, nach err
Klasse: Console
[Verlauf]
Version | Änderungen |
---|---|
v8.0.0 | Fehler, die beim Schreiben in die zugrunde liegenden Streams auftreten, werden jetzt standardmäßig ignoriert. |
Die Klasse Console
kann verwendet werden, um einen einfachen Logger mit konfigurierbaren Ausgabestreams zu erstellen und kann entweder über require('node:console').Console
oder console.Console
(oder deren destrukturierte Gegenstücke) aufgerufen werden:
import { Console } from 'node:console';
const { Console } = require('node:console');
const { Console } = console;
new Console(stdout[, stderr][, ignoreErrors])
new Console(options)
[Verlauf]
Version | Änderungen |
---|---|
v14.2.0, v12.17.0 | Die Option groupIndentation wurde eingeführt. |
v11.7.0 | Die Option inspectOptions wurde eingeführt. |
v10.0.0 | Der Console -Konstruktor unterstützt jetzt ein options -Argument, und die Option colorMode wurde eingeführt. |
v8.0.0 | Die Option ignoreErrors wurde eingeführt. |
options
<Object>stdout
<stream.Writable>stderr
<stream.Writable>ignoreErrors
<boolean> Ignoriert Fehler beim Schreiben in die zugrunde liegenden Streams. Standard:true
.colorMode
<boolean> | <string> Legt die Farbunterstützung für dieseConsole
-Instanz fest. Wenn die Option auftrue
gesetzt ist, wird die Farbgebung bei der Inspektion von Werten aktiviert. Wenn die Option auffalse
gesetzt ist, wird die Farbgebung bei der Inspektion von Werten deaktiviert. Wenn die Option auf'auto'
gesetzt ist, hängt die Farbunterstützung vom Wert der EigenschaftisTTY
und dem vongetColorDepth()
zurückgegebenen Wert des jeweiligen Streams ab. Diese Option kann nicht verwendet werden, wenninspectOptions.colors
ebenfalls gesetzt ist. Standard:'auto'
.inspectOptions
<Object> Gibt Optionen an, die anutil.inspect()
weitergegeben werden.groupIndentation
<number> Legt die Gruppeneinrückung fest. Standard:2
.
Erstellt eine neue Console
mit einer oder zwei beschreibbaren Stream-Instanzen. stdout
ist ein beschreibbarer Stream zum Ausgeben von Protokoll- oder Info-Ausgaben. stderr
wird für Warn- oder Fehlerausgaben verwendet. Wenn stderr
nicht angegeben wird, wird stdout
für stderr
verwendet.
import { createWriteStream } from 'node:fs';
import { Console } from 'node:console';
// Alternatively
// const { Console } = console;
const output = createWriteStream('./stdout.log');
const errorOutput = createWriteStream('./stderr.log');
// Custom simple logger
const logger = new Console({ stdout: output, stderr: errorOutput });
// use it like console
const count = 5;
logger.log('count: %d', count);
// In stdout.log: count 5
const fs = require('node:fs');
const { Console } = require('node:console');
// Alternatively
// const { Console } = console;
const output = fs.createWriteStream('./stdout.log');
const errorOutput = fs.createWriteStream('./stderr.log');
// Custom simple logger
const logger = new Console({ stdout: output, stderr: errorOutput });
// use it like console
const count = 5;
logger.log('count: %d', count);
// In stdout.log: count 5
Die globale console
ist eine spezielle Console
, deren Ausgabe an process.stdout
und process.stderr
gesendet wird. Sie entspricht dem Aufruf von:
new Console({ stdout: process.stdout, stderr: process.stderr });
console.assert(value[, ...message])
[History]
Version | Änderungen |
---|---|
v10.0.0 | Die Implementierung ist jetzt spezifikationskonform und löst keine Fehler mehr aus. |
v0.1.101 | Hinzugefügt in: v0.1.101 |
value
<any> Der Wert, der auf Wahrheit geprüft wird....message
<any> Alle Argumente außervalue
werden als Fehlermeldung verwendet.
console.assert()
schreibt eine Nachricht, wenn value
falsch ist oder fehlt. Es schreibt nur eine Nachricht und beeinflusst die Ausführung ansonsten nicht. Die Ausgabe beginnt immer mit "Assertion failed"
. Falls angegeben, wird message
mit util.format()
formatiert.
Wenn value
wahr ist, passiert nichts.
console.assert(true, 'does nothing');
console.assert(false, 'Whoops %s work', 'didn\'t');
// Assertion failed: Whoops didn't work
console.assert();
// Assertion failed
console.clear()
Hinzugefügt in: v8.3.0
Wenn stdout
ein TTY ist, versucht der Aufruf von console.clear()
, das TTY zu löschen. Wenn stdout
kein TTY ist, tut diese Methode nichts.
Die spezifische Funktionsweise von console.clear()
kann je nach Betriebssystem und Terminaltyp variieren. Bei den meisten Linux-Betriebssystemen funktioniert console.clear()
ähnlich wie der Shell-Befehl clear
. Unter Windows löscht console.clear()
nur die Ausgabe im aktuellen Terminal-Viewport für die Node.js-Binärdatei.
console.count([label])
Hinzugefügt in: v8.3.0
label
<string> Die Anzeigebeschriftung für den Zähler. Standard:'default'
.
Verwaltet einen internen Zähler spezifisch für label
und gibt die Anzahl der Aufrufe von console.count()
mit dem gegebenen label
an stdout
aus.
> console.count()
default: 1
undefined
> console.count('default')
default: 2
undefined
> console.count('abc')
abc: 1
undefined
> console.count('xyz')
xyz: 1
undefined
> console.count('abc')
abc: 2
undefined
> console.count()
default: 3
undefined
>
console.countReset([label])
Hinzugefügt in: v8.3.0
label
<string> Die Anzeigebezeichnung für den Zähler. Standard:'default'
.
Setzt den internen Zähler zurück, der spezifisch für label
ist.
> console.count('abc');
abc: 1
undefined
> console.countReset('abc');
undefined
> console.count('abc');
abc: 1
undefined
>
console.debug(data[, ...args])
[Verlauf]
Version | Änderungen |
---|---|
v8.10.0 | console.debug ist jetzt ein Alias für console.log . |
v8.0.0 | Hinzugefügt in: v8.0.0 |
Die Funktion console.debug()
ist ein Alias für console.log()
.
console.dir(obj[, options])
Hinzugefügt in: v0.1.101
obj
<any>options
<Object>showHidden
<boolean> Wenntrue
, werden auch die nicht aufzählbaren und Symbol-Eigenschaften des Objekts angezeigt. Standard:false
.depth
<number> Sagtutil.inspect()
, wie oft beim Formatieren des Objekts rekursiert werden soll. Dies ist nützlich, um große, komplizierte Objekte zu inspizieren. Um es unendlich oft zu rekursieren, übergeben Sienull
. Standard:2
.colors
<boolean> Wenntrue
, wird die Ausgabe mit ANSI-Farbcodes formatiert. Farben sind anpassbar; siehe Anpassen der Farben vonutil.inspect()
. Standard:false
.
Verwendet util.inspect()
auf obj
und gibt die resultierende Zeichenkette in stdout
aus. Diese Funktion umgeht jede benutzerdefinierte inspect()
-Funktion, die auf obj
definiert ist.
console.dirxml(...data)
[Verlauf]
Version | Änderungen |
---|---|
v9.3.0 | console.dirxml ruft jetzt console.log für seine Argumente auf. |
v8.0.0 | Hinzugefügt in: v8.0.0 |
...data
<any>
Diese Methode ruft console.log()
auf und übergibt ihr die empfangenen Argumente. Diese Methode erzeugt keine XML-Formatierung.
console.error([data][, ...args])
Hinzugefügt in: v0.1.100
Gibt mit Zeilenumbruch nach stderr
aus. Es können mehrere Argumente übergeben werden, wobei das erste als primäre Nachricht und alle zusätzlichen als Substitutionswerte ähnlich printf(3)
verwendet werden (die Argumente werden alle an util.format()
übergeben).
const code = 5;
console.error('error #%d', code);
// Gibt aus: error #5, nach stderr
console.error('error', code);
// Gibt aus: error 5, nach stderr
Wenn Formatierungselemente (z. B. %d
) nicht in der ersten Zeichenkette gefunden werden, wird util.inspect()
für jedes Argument aufgerufen und die resultierenden Zeichenkettenwerte werden verkettet. Weitere Informationen finden Sie unter util.format()
.
console.group([...label])
Hinzugefügt in: v8.5.0
...label
<any>
Erhöht den Einzug nachfolgender Zeilen um Leerzeichen für die Länge von groupIndentation
.
Wenn ein oder mehrere label
bereitgestellt werden, werden diese zuerst ohne den zusätzlichen Einzug ausgegeben.
console.groupCollapsed()
Hinzugefügt in: v8.5.0
Ein Alias für console.group()
.
console.groupEnd()
Hinzugefügt in: v8.5.0
Verringert den Einzug nachfolgender Zeilen um Leerzeichen für die Länge von groupIndentation
.
console.info([data][, ...args])
Hinzugefügt in: v0.1.100
Die Funktion console.info()
ist ein Alias für console.log()
.
console.log([data][, ...args])
Hinzugefügt in: v0.1.100
Gibt mit einem Zeilenumbruch auf stdout
aus. Es können mehrere Argumente übergeben werden, wobei das erste als primäre Nachricht und alle zusätzlichen als Substitutionswerte ähnlich wie bei printf(3)
verwendet werden (die Argumente werden alle an util.format()
übergeben).
const count = 5;
console.log('count: %d', count);
// Gibt aus: count: 5, an stdout
console.log('count:', count);
// Gibt aus: count: 5, an stdout
Weitere Informationen finden Sie unter util.format()
.
console.table(tabularData[, properties])
Hinzugefügt in: v10.0.0
tabularData
<any>properties
<string[]> Alternative Eigenschaften zum Erstellen der Tabelle.
Versuchen Sie, eine Tabelle mit den Spalten der Eigenschaften von tabularData
(oder verwenden Sie properties
) und Zeilen von tabularData
zu erstellen und protokollieren Sie sie. Fällt auf die einfache Protokollierung des Arguments zurück, wenn es nicht als tabellarisch geparst werden kann.
// Diese können nicht als tabellarische Daten geparst werden
console.table(Symbol());
// Symbol()
console.table(undefined);
// undefined
console.table([{ a: 1, b: 'Y' }, { a: 'Z', b: 2 }]);
// ┌─────────┬─────┬─────┐
// │ (index) │ a │ b │
// ├─────────┼─────┼─────┤
// │ 0 │ 1 │ 'Y' │
// │ 1 │ 'Z' │ 2 │
// └─────────┴─────┴─────┘
console.table([{ a: 1, b: 'Y' }, { a: 'Z', b: 2 }], ['a']);
// ┌─────────┬─────┐
// │ (index) │ a │
// ├─────────┼─────┤
// │ 0 │ 1 │
// │ 1 │ 'Z' │
// └─────────┴─────┘
console.time([label])
Hinzugefügt in: v0.1.104
label
<string> Standard:'default'
Startet einen Timer, der verwendet werden kann, um die Dauer einer Operation zu berechnen. Timer werden durch ein eindeutiges label
identifiziert. Verwenden Sie dasselbe label
beim Aufrufen von console.timeEnd()
, um den Timer zu stoppen und die verstrichene Zeit in geeigneten Zeiteinheiten an stdout
auszugeben. Wenn beispielsweise die verstrichene Zeit 3869 ms beträgt, zeigt console.timeEnd()
"3.869s" an.
console.timeEnd([label])
[Verlauf]
Version | Änderungen |
---|---|
v13.0.0 | Die verstrichene Zeit wird mit einer geeigneten Zeiteinheit angezeigt. |
v6.0.0 | Diese Methode unterstützt nicht mehr mehrere Aufrufe, die nicht einzelnen console.time() -Aufrufen zugeordnet sind; Details siehe unten. |
v0.1.104 | Hinzugefügt in: v0.1.104 |
label
<string> Standard:'default'
Stoppt einen Timer, der zuvor durch Aufrufen von console.time()
gestartet wurde, und gibt das Ergebnis an stdout
aus:
console.time('bunch-of-stuff');
// Do a bunch of stuff.
console.timeEnd('bunch-of-stuff');
// Gibt aus: bunch-of-stuff: 225.438ms
console.timeLog([label][, ...data])
Hinzugefügt in: v10.7.0
Für einen Timer, der zuvor durch Aufrufen von console.time()
gestartet wurde, gibt die verstrichene Zeit und andere data
-Argumente an stdout
aus:
console.time('process');
const value = expensiveProcess1(); // Gibt 42 zurück
console.timeLog('process', value);
// Gibt aus: "process: 365.227ms 42".
doExpensiveProcess2(value);
console.timeEnd('process');
console.trace([message][, ...args])
Hinzugefügt in: v0.1.104
Gibt an stderr
den String 'Trace: '
aus, gefolgt von der mit util.format()
formatierten Nachricht und dem Stack Trace zur aktuellen Position im Code.
console.trace('Show me');
// Gibt aus: (Stack Trace variiert je nachdem, wo trace aufgerufen wird)
// Trace: Show me
// at repl:2:9
// at REPLServer.defaultEval (repl.js:248:27)
// at bound (domain.js:287:14)
// at REPLServer.runBound [as eval] (domain.js:300:12)
// at REPLServer.<anonymous> (repl.js:412:12)
// at emitOne (events.js:82:20)
// at REPLServer.emit (events.js:169:7)
// at REPLServer.Interface._onLine (readline.js:210:10)
// at REPLServer.Interface._line (readline.js:549:8)
// at REPLServer.Interface._ttyWrite (readline.js:826:14)
console.warn([data][, ...args])
Hinzugefügt in: v0.1.100
Die Funktion console.warn()
ist ein Alias für console.error()
.
Nur Inspektormethoden
Die folgenden Methoden werden von der V8-Engine in der allgemeinen API bereitgestellt, zeigen aber nichts an, es sei denn, sie werden in Verbindung mit dem Inspektor (--inspect
-Flag) verwendet.
console.profile([label])
Hinzugefügt in: v8.0.0
label
<string>
Diese Methode zeigt nichts an, es sei denn, sie wird im Inspektor verwendet. Die Methode console.profile()
startet ein JavaScript-CPU-Profil mit einer optionalen Bezeichnung, bis console.profileEnd()
aufgerufen wird. Das Profil wird dann dem Profile-Panel des Inspektors hinzugefügt.
console.profile('MyLabel');
// Some code
console.profileEnd('MyLabel');
// Fügt das Profil 'MyLabel' dem Profile-Panel des Inspektors hinzu.
console.profileEnd([label])
Hinzugefügt in: v8.0.0
label
<string>
Diese Methode zeigt nichts an, es sei denn, sie wird im Inspektor verwendet. Beendet die aktuelle JavaScript-CPU-Profiling-Sitzung, falls eine gestartet wurde, und gibt den Bericht im Profile-Panel des Inspektors aus. Siehe console.profile()
für ein Beispiel.
Wenn diese Methode ohne Bezeichnung aufgerufen wird, wird das zuletzt gestartete Profil gestoppt.
console.timeStamp([label])
Hinzugefügt in: v8.0.0
label
<string>
Diese Methode zeigt nichts an, es sei denn, sie wird im Inspektor verwendet. Die Methode console.timeStamp()
fügt ein Ereignis mit der Bezeichnung 'label'
dem Timeline-Panel des Inspektors hinzu.