Nach stdout, nicht in Dateien
In einem Container schreibt man Logs auf die Standardausgabe. Die Plattform nimmt sie von dort entgegen, sammelt sie und macht sie durchsuchbar.
Eine Logdatei im Container ist dagegen eine Sackgasse: Sie wächst, bis die Platte voll ist, und ist beim nächsten Deployment weg – ausgerechnet dann, wenn man sie bräuchte.
// gut
console.log(JSON.stringify({ stufe: "info", nachricht: "Bestellung angelegt", bestellung: id }));
// unbrauchbar
fs.appendFileSync("/app/app.log", "irgendwas passiert\n");Was niemals ins Log gehört
- Passwörter, Tokens, Schlüssel – auch nicht „nur zum Testen“. Logs werden aufbewahrt, kopiert und von mehr Leuten gelesen, als man denkt.
- Vollständige Kartendaten oder Gesundheitsdaten.
- Ganze Anfragekörper mit personenbezogenen Daten. Kennungen genügen.
Wie es bei Branchway läuft
Die Ausgaben jeder App laufen live in der Console, lassen sich durchsuchen und nach Zeitraum eingrenzen. Wie lange sie aufbewahrt werden, stellst du je App ein – der Standard ist bewusst kurz.
Für Fehler, die man nicht verpassen darf, gibt es Alarme: Statt Logs zu lesen, bekommst du eine Mail, wenn eine App abstürzt oder nicht mehr antwortet.
Häufige Fragen
Wie viel soll ich protokollieren?
So viel, dass du einen Fehler nachvollziehen kannst, und so wenig, dass du ihn zwischen den Zeilen findest. Eine Zeile pro Anfrage und eine pro Fehler ist ein guter Anfang.
Soll ich JSON protokollieren?
Sobald du nach Feldern suchen willst, ja. Für kleine Anwendungen reicht lesbarer Text – der lässt sich schneller überfliegen.