Konsole
[Stabil: 2 - Stabil]
Stabil: 2 Stabilität: 2 - Stabil
Quellcode: lib/console.js
Das Modul node:console
stellt eine einfache Debugging-Konsole bereit, die der von Webbrowsern bereitgestellten JavaScript-Konsolenmechanismus ähnelt.
Das Modul exportiert zwei spezifische Komponenten:
- Eine
Console
-Klasse mit Methoden wieconsole.log()
,console.error()
undconsole.warn()
, die verwendet werden können, um in jeden 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')
aufrufen zu müssen.
Warnung: Die Methoden des globalen Konsolenobjekts sind weder konsistent synchron wie die Browser-APIs, denen sie ähneln, noch konsistent asynchron wie alle anderen Node.js-Streams. Programme, die vom synchronen/asynchronen Verhalten der Konsolenfunktionen abhängig sein möchten, sollten zuerst die Natur des zugrundeliegenden Streams der Konsole ermitteln. Dies liegt daran, dass der Stream von der zugrundeliegenden Plattform und der Standard-Stream-Konfiguration des aktuellen Prozesses abhängt. Weitere Informationen finden Sie in der Anmerkung zu Prozess-E/A.
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('Whoops, something bad happened'))
// Gibt Fehlermeldung und Stack-Trace nach stderr aus:
// Error: Whoops, something bad happened
// 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(`Danger ${name}! Danger!`)
// Gibt aus: Danger Will Robinson! Danger!, 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('Whoops, something bad happened'))
// Gibt aus: [Error: Whoops, something bad happened], nach err
const name = 'Will Robinson'
myConsole.warn(`Danger ${name}! Danger!`)
// Gibt aus: Danger Will Robinson! Danger!, 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. Der Zugriff erfolgt entweder über require('node:console').Console
oder console.Console
(oder deren destrukturierte Gegenstücke):
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. Die Einstellung auftrue
aktiviert die Farbgebung beim Inspizieren von Werten. Die Einstellung auffalse
deaktiviert die Farbgebung beim Inspizieren von Werten. Die Einstellung auf'auto'
lässt die Farbunterstützung vom Wert der EigenschaftisTTY
und dem vongetColorDepth()
auf dem jeweiligen Stream zurückgegebenen Wert abhängen. 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> Setzt die Einrückung für Gruppen. Standard:2
.
Erstellt eine neue Console
mit einer oder zwei schreibbaren Stream-Instanzen. stdout
ist ein schreibbarer Stream zum Ausgeben von Protokoll- oder Informationsausgaben. stderr
wird für Warnungs- oder Fehlermeldungen verwendet. Wenn stderr
nicht angegeben ist, wird stdout
für stderr
verwendet.
import { createWriteStream } from 'node:fs'
import { Console } from 'node:console'
// Alternativ
// const { Console } = console;
const output = createWriteStream('./stdout.log')
const errorOutput = createWriteStream('./stderr.log')
// Benutzerdefinierter einfacher Logger
const logger = new Console({ stdout: output, stderr: errorOutput })
// Verwendung wie console
const count = 5
logger.log('count: %d', count)
// In stdout.log: count 5
const fs = require('node:fs')
const { Console } = require('node:console')
// Alternativ
// const { Console } = console;
const output = fs.createWriteStream('./stdout.log')
const errorOutput = fs.createWriteStream('./stderr.log')
// Benutzerdefinierter einfacher Logger
const logger = new Console({ stdout: output, stderr: errorOutput })
// Verwendung wie console
const count = 5
logger.log('count: %d', count)
// In stdout.log: count 5
Die globale Variable console
ist eine spezielle Console
, deren Ausgabe an process.stdout
und process.stderr
gesendet wird. Sie entspricht dem Aufruf:
new Console({ stdout: process.stdout, stderr: process.stderr })
console.assert(value[, ...message])
[Historie]
Version | Änderungen |
---|---|
v10.0.0 | Die Implementierung entspricht nun der Spezifikation und wirft keine Fehler mehr aus. |
v0.1.101 | Hinzugefügt in: v0.1.101 |
value
<beliebig> Der Wert, der auf Wahrheitsgehalt geprüft wird....message
<beliebig> Alle Argumente außervalue
werden als Fehlermeldung verwendet.
console.assert()
schreibt eine Meldung, wenn value
falsy ist oder fehlt. Es schreibt nur eine Meldung und beeinflusst die Ausführung sonst nicht. Die Ausgabe beginnt immer mit "Assertion failed"
. Falls angegeben, wird message
mit util.format()
formatiert.
Wenn value
truthy ist, passiert nichts.
console.assert(true, 'macht nichts')
console.assert(false, 'Hoppla %s funktioniert nicht', 'hat')
// Assertion failed: Hoppla hat funktioniert nicht
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 leeren. Wenn stdout
kein TTY ist, macht diese Methode nichts.
Die spezifische Operation 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 Anzeigebezeichnung für den Zähler. Standard:'default'
.
Verwaltet einen internen Zähler, der spezifisch für label
ist, und gibt auf stdout
die Anzahl der Aufrufe von console.count()
mit dem angegebenen label
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 anzuzeigende Bezeichnung für den Zähler. Standard:'default'
.
Setzt den internen Zähler, der spezifisch für label
ist, zurück.
> 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> Teiltutil.inspect()
mit, wie oft beim Formatieren des Objekts rekursiv vorgegangen werden soll. Dies ist nützlich zum Inspizieren großer, komplizierter Objekte. Um unbegrenzt rekursiv vorzugehen, geben Sienull
an. 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 an stdout
aus. Diese Funktion umgeht alle benutzerdefinierten inspect()
-Funktionen, die auf obj
definiert sind.
console.dirxml(...data)
[Versionsgeschichte]
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
<beliebig>
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
data
<beliebig>...args
<beliebig>
Gibt mit Zeilenvorschub an stderr
aus. Es können mehrere Argumente übergeben werden, wobei das erste als Hauptmeldung und alle zusätzlichen als Substitutionswerte ähnlich wie bei printf(3)
verwendet werden (alle Argumente werden an util.format()
übergeben).
const code = 5
console.error('error #%d', code)
// Gibt aus: error #5, an stderr
console.error('error', code)
// Gibt aus: error 5, an 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
<beliebig>
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 Zeilenumbruch an stdout
aus. Mehrere Argumente können übergeben werden, wobei das erste als primäre Nachricht verwendet wird und alle zusätzlichen als Substitutionswerte ähnlich zu 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
Siehe util.format()
für weitere Informationen.
console.table(tabularData[, properties])
Hinzugefügt in: v10.0.0
tabularData
<any>properties
<string[]> Alternative Eigenschaften zum Erstellen der Tabelle.
Versucht, eine Tabelle mit den Spalten der Eigenschaften von tabularData
(oder verwendet properties
) und Zeilen von tabularData
zu erstellen und diese auszugeben. Greift auf die einfache Ausgabe des Arguments zurück, wenn es nicht als tabellarisch analysiert werden kann.
// Diese können nicht als tabellarische Daten analysiert 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> Standardwert:'default'
Startet einen Timer, der zur Berechnung der Dauer einer Operation verwendet werden kann. Timer werden durch ein eindeutiges label
identifiziert. Verwenden Sie dasselbe label
, wenn Sie console.timeEnd()
aufrufen, um den Timer zu stoppen und die verstrichene Zeit in geeigneten Zeiteinheiten auf stdout
auszugeben. Wenn die verstrichene Zeit beispielsweise 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 keine mehreren Aufrufe mehr, die nicht einzelnen console.time() -Aufrufen zugeordnet sind; siehe unten für Details. |
v0.1.104 | Hinzugefügt in: v0.1.104 |
label
<string> Standardwert:'default'
Stoppt einen Timer, der zuvor durch Aufrufen von console.time()
gestartet wurde, und gibt das Ergebnis auf stdout
aus:
console.time('bunch-of-stuff')
// Führe eine Reihe von Aktionen aus.
console.timeEnd('bunch-of-stuff')
// Gibt aus: bunch-of-stuff: 225.438ms
console.timeLog([label][, ...data])
Hinzugefügt in: v10.7.0
Gibt für einen Timer, der zuvor durch Aufrufen von console.time()
gestartet wurde, die verstrichene Zeit und andere data
-Argumente auf stdout
aus:
console.time('process')
const value = expensiveProcess1() // Gibt 42 zurück
console.timeLog('process', value)
// Gibt "process: 365.227ms 42" aus.
doExpensiveProcess2(value)
console.timeEnd('process')
console.trace([message][, ...args])
Hinzugefügt in: v0.1.104
Gibt auf stderr
die Zeichenkette 'Trace: '
, gefolgt von der mit util.format()
formatierten Nachricht und der Stack-Trace an die aktuelle Position im Code aus.
console.trace('Show me')
// Gibt aus: (Stack-Trace variiert je nach Aufrufposition von trace)
// 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 Inspector-Methoden
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 Inspector (--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 Inspector verwendet. Die Methode console.profile()
startet ein JavaScript-CPU-Profil mit einer optionalen Bezeichnung, bis console.profileEnd()
aufgerufen wird. Das Profil wird dann dem Profil-Panel des Inspectors hinzugefügt.
console.profile('MyLabel')
// Etwas Code
console.profileEnd('MyLabel')
// Fügt das Profil 'MyLabel' zum Profiles-Panel des Inspectors hinzu.
console.profileEnd([label])
Hinzugefügt in: v8.0.0
label
<string>
Diese Methode zeigt nichts an, es sei denn, sie wird im Inspector verwendet. Stoppt die aktuelle JavaScript-CPU-Profilersitzung, falls eine gestartet wurde, und gibt den Bericht an das Profile-Panel des Inspectors 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 Inspector verwendet. Die Methode console.timeStamp()
fügt dem Timeline-Panel des Inspectors ein Ereignis mit der Bezeichnung 'label'
hinzu.