Laravel Tutorial #04: Fehlerbehandlung und Logging

Werbung

Aktuelle Tutorials findest du auf meiner neuen Laravel Tutorial Seite.

Lavavel Tutorial Fehlerbehandlung LoggingWillkommen zum vierten Tutorial zum Thema Laravel . Eine Übersicht der vergangenen Teile findet du unter Lavavel 4 Tutorial Übersicht.Heute möchte ich die Fehlerbehandlung und das Logging in Laravel ausprobieren. Ich glaube das heutige Tutorial wird etwas kürzer als die letzten, denn Laravel bringt eigentlich schon alles mit was wir dazu brauchen.

Also dann, viel Spaß.

Die Fehlerbehandlung in Webanwendungen ist eng verbunden mit dem Logging der Anwendung. Nur durch das Logging hast du deine Webanwendung total unter Kontrolle. Als erstes solltest du dich davon verabschieden eine absolut fehlerfreie Anwendung schreiben zu können. Natürlich will ich dich nicht ermutigen Fehler zu machen oder noch schlimmer, schlampig zu arbeiten. Aber je größer die Anwendung wird, desto verständlicherweise schleichen sich Fehler ein.

Ein Arbeitskollege von mir weist von Zeit zu Zeit darauf hin, dass wir keinen Code für Atomkraftwerke schreiben. Recht hat er. Solltest du aber mit PHP etwas in der Richtung tun, dann versuch es fehlerfrei zu halten.

404 Fehler mit Laravel abfangen

Die häufigsten „Fehler“ sind Aufrufe mit dem HTTP Status Code 404, also Seite nicht gefunden. Dabei muss es sich noch nicht mal um einen Fehler handeln. Die Seite, das Angebot oder der Artikel ist vielleicht gewollt nicht mehr da. Informationen im Internet altern anscheinend noch schneller. Daher sind 404 Status Codes nichts aussergewöhnliches.

Wichtig ist allerdings deinen Besucher nicht im Regen stehen zu lassen. Zeige ihm eine ordentliche 404 Seite und er wird wohlmöglich nicht direkt wieder abhauen. Du könntest auf der Seite auch noch ein paar Links zu wichtigen Punkten auf deiner Seite einbauen. Versuche es zu vermeiden 404 Fehler auf andere Seiten weiterzuleiten.

Werbung

Genug mit der Werbung. Jetzt bauen wir die 404 Fehlerseite in unser Projekt ein. Das ist in Laravel extrem einfach. Du brauchst nur in /resources/views/errors eine 404.blade.php einfügen und schon wird diese View bei einem 404 Fehler angezeigt. Genial. Auch einfacher als in Laravel 4. Daher kann ich einigen Text, der vorher hier in diesem Tutorial steckte wieder löschen, weil er für Laravel 5 nicht mehr aktuell ist.

Du kannst jetzt dein Projekt mit einem ungültigen Aufruf wie http://localhost:8000/hieristnix aufrufen. http://localhost:8000 funktioniert natürlich nur wenn auch die Build-In PHP Engine mit php artisan serve gestartet wurde.

Jetzt sollte die vorher erstellte 404 Seite angezeigt werden.

Laravel Logging

Die Log Dateien von Laravel findest du in /storage/logs. Je nachdem wie das Logging konfiguriert ist, wird hier eine Log Datei gepflegt oder eine tägliche.

Manuelles Logging ist vor allem in Produktivumgebungen nützlich, wenn etwas spezielles untersucht werden soll. In die Log Datei solltest du von Zeit zu Zeit reinschauen. Das hilft einheimlich bei der Analyse der Webseite.

Das Logging von Laravel nutzt die externe Monolog Library. Damit kann man, überspitzt gesagt, auf 1000 verschiedene Arten loggen. Falls du mehr darüber erfahren willst, dann kannst du dir das Monolog Projekt auf Github anschauen.

Für uns reichen erstmal die Standard Logging Funktionen.

Wenn wir in der Anwendung manuell ins Log schreiben wollen, ohne einen Fehler zu produzieren, dann funktioniert das mit den folgenden Befehlen:

  • Log::debug
  • Log::info
  • Log::notice
  • Log::warning
  • Log::error
  • Log::critical
  • Log::alert

Hier musst du entscheiden welches für welchen Fall aufgerufen wird. Fall nicht, dann einfach mal unter der RFC 5424 schauen.

Damit sind wir auch „schon“ am Ende dieses Laravel Tutorials.

Ich freue mich wirklich, dass du (wieder) da warst und mit mir das Tutorial durchgegangen bist. Von mal zu mal werde ich versuchen etwas besser zu werden.

Wenn du Fragen, Kritik, Lob oder Anregungen loswerden willst, dann nutz einfach die Kommentarfunktion am Ende des Artikels.

Vielen Dank und viel Spaß mit Laravel.