Start · Sprachen · JavaScript · Referenz · console.error()

console.error()

Methode

Die statische Methode <code>console.error()</code> gibt eine Nachricht mit dem Log-Level „error“ auf der Konsole aus.

seit JavaScript Baseline: alle Browser, Node.js alle Versionen Kategorie: webapi

Signatur

console.error(val1, /* …, */ valN) / console.error(msg, subst1, /* …, */ substN)

Beschreibung

Die statische Methode console.error() gibt eine oder mehrere Nachrichten mit dem Log-Level „error“ aus. In den Entwicklerwerkzeugen der Browser wird die Ausgabe meist rot hervorgehoben, oft mit einem aufklappbaren Stacktrace. Ob sie sichtbar ist, hängt vom eingestellten Log-Filter der Konsole ab.

Verwende console.error() für echte Fehlerzustände, etwa fehlgeschlagene Netzwerkanfragen, ungültige Eingaben oder abgefangene Ausnahmen in catch-Blöcken. Durch das eigene Log-Level kannst du Fehler in der Konsole gezielt filtern und von normalen Ausgaben über console.log() oder console.warn() trennen.

Die Methode lässt sich auf zwei Arten aufrufen: Entweder übergibst du beliebig viele Werte, die nacheinander (mit Leerzeichen getrennt) ausgegeben werden, oder du gibst als ersten Parameter einen Format-String mit Platzhaltern wie %s, %d, %i, %f, %o, %O und %c an, die durch die folgenden Argumente ersetzt werden.

In Node.js schreibt console.error() auf process.stderr und nicht auf stdout. Das ist wichtig, wenn du die Ausgabe umleitest, z. B. mit node app.js 2> fehler.log.

Parameter

Name Typ Default Beschreibung
$val1 … valN any Beliebige Werte (Strings, Objekte, Error-Instanzen …), die nacheinander ausgegeben werden. Objekte werden in Browsern meist interaktiv dargestellt.
$msg string Format-String mit null oder mehr Platzhaltern (%s, %d/%i, %f, %o, %O, %c).
$subst1 … substN any Werte, die der Reihe nach die Platzhalter in msg ersetzen. Überzählige Argumente werden einfach angehängt.

Rückgabewert

Typ
void
Beschreibung
Kein Rückgabewert (undefined).

Beispiele

Einfache Fehlermeldung mit mehreren Werten

const userId = 42;
console.error('Benutzer nicht gefunden:', userId);
Benutzer nicht gefunden: 42

Fehler in einem fetch-Aufruf protokollieren

const loadUser = async (id) => {
  try {
    const res = await fetch(`https://api.example.com/users/${id}`);
    if (!res.ok) {
      throw new Error(`HTTP ${res.status}`);
    }
    return await res.json();
  } catch (err) {
    // Error-Objekt direkt übergeben – Stacktrace bleibt erhalten
    console.error('Laden von Benutzer %d fehlgeschlagen:', id, err);
    return null;
  }
};

loadUser(7);
Laden von Benutzer 7 fehlgeschlagen: Error: HTTP 404 at loadUser (...)

Format-String mit Platzhaltern und CSS

const file = 'config.json';
const line = 12;
console.error('%cParserfehler%c in %s, Zeile %i', 'color: white; background: crimson; padding: 2px 4px;', '', file, line);
Parserfehler in config.json, Zeile 12

Node.js: Ausgabe landet auf stderr

// app.js – Aufruf: node app.js > out.log 2> err.log
console.log('Start');            // -> out.log
console.error('Konfiguration fehlt'); // -> err.log
process.exitCode = 1;

// Wichtig · Fallstricke

  • Kein Programmabbruch: console.error() protokolliert nur – es wirft keine Ausnahme und stoppt die Ausführung nicht. Um einen Fehler weiterzureichen, verwende throw.
  • Live-Objekte: Browser zeigen Objekte oft als Referenz an. Wird das Objekt nach dem Loggen verändert, siehst du beim Aufklappen eventuell den neuen Zustand. Für eine Momentaufnahme hilft structuredClone(obj) oder JSON.stringify(obj).
  • Error-Objekte direkt übergeben statt err.message, sonst geht der Stacktrace verloren. Bei String-Verkettung ('Fehler: ' + err) bleibt nur toString() übrig.
  • Datenschutz/Sicherheit: Keine Tokens, Passwörter oder personenbezogenen Daten in Produktionscode loggen – die Konsole ist für jeden Nutzer einsehbar.
  • Node.js: Ausgabe geht an stderr. Schreibvorgänge können je nach Ziel (Datei, Pipe, TTY) synchron oder asynchron sein.
  • Das Aussehen (Farbe, Stacktrace) ist nicht standardisiert und unterscheidet sich zwischen Browsern. Die Methode wird von allen modernen Browsern und in Web Workern unterstützt.