Skip to content

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 wie console.log(), console.error() und console.warn(), die verwendet werden können, um in jeden Node.js-Stream zu schreiben.
  • Eine globale console-Instanz, die so konfiguriert ist, dass sie in process.stdout und process.stderr schreibt. Die globale console kann verwendet werden, ohne require('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:

js
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:

js
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.0Fehler, 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):

js
import { Console } from 'node:console'
js
const { Console } = require('node:console')
js
const { Console } = console

new Console(stdout[, stderr][, ignoreErrors])

new Console(options)

[Verlauf]

VersionÄnderungen
v14.2.0, v12.17.0Die Option groupIndentation wurde eingeführt.
v11.7.0Die Option inspectOptions wurde eingeführt.
v10.0.0Der Console-Konstruktor unterstützt jetzt ein options-Argument, und die Option colorMode wurde eingeführt.
v8.0.0Die 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 diese Console-Instanz fest. Die Einstellung auf true aktiviert die Farbgebung beim Inspizieren von Werten. Die Einstellung auf false deaktiviert die Farbgebung beim Inspizieren von Werten. Die Einstellung auf 'auto' lässt die Farbunterstützung vom Wert der Eigenschaft isTTY und dem von getColorDepth() auf dem jeweiligen Stream zurückgegebenen Wert abhängen. Diese Option kann nicht verwendet werden, wenn inspectOptions.colors ebenfalls gesetzt ist. Standard: 'auto'.
    • inspectOptions <Object> Gibt Optionen an, die an util.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.

js
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
js
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:

js
new Console({ stdout: process.stdout, stderr: process.stderr })

console.assert(value[, ...message])

[Historie]

VersionÄnderungen
v10.0.0Die Implementierung entspricht nun der Spezifikation und wirft keine Fehler mehr aus.
v0.1.101Hinzugefügt in: v0.1.101
  • value <beliebig> Der Wert, der auf Wahrheitsgehalt geprüft wird.
  • ...message <beliebig> Alle Argumente außer value 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.

js
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.

js
> 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.

js
> 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.0console.debug ist jetzt ein Alias für console.log.
v8.0.0Hinzugefü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> Wenn true, werden auch die nicht-aufzählbaren und Symbol-Eigenschaften des Objekts angezeigt. Standard: false.
    • depth <number> Teilt util.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 Sie null an. Standard: 2.
    • colors <boolean> Wenn true, wird die Ausgabe mit ANSI-Farbcodes formatiert. Farben sind anpassbar; siehe Anpassen der Farben von util.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.0console.dirxml ruft jetzt console.log für seine Argumente auf.
v8.0.0Hinzugefügt in: v8.0.0

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 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).

js
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

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).

js
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.

js
// 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

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.0Die verstrichene Zeit wird mit einer geeigneten Zeiteinheit angezeigt.
v6.0.0Diese Methode unterstützt keine mehreren Aufrufe mehr, die nicht einzelnen console.time()-Aufrufen zugeordnet sind; siehe unten für Details.
v0.1.104Hinzugefügt in: v0.1.104

Stoppt einen Timer, der zuvor durch Aufrufen von console.time() gestartet wurde, und gibt das Ergebnis auf stdout aus:

js
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:

js
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.

js
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

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.

js
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

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

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.