Signatur
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
undefined).Beispiele
Einfache Fehlermeldung mit mehreren Werten
const userId = 42;
console.error('Benutzer nicht gefunden:', userId);
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);
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);
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, verwendethrow. - 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)oderJSON.stringify(obj). - Error-Objekte direkt übergeben statt
err.message, sonst geht der Stacktrace verloren. Bei String-Verkettung ('Fehler: ' + err) bleibt nurtoString()ü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.