Skip to main content

Was ist Logging?

Das Logging von Laravel ist rund um das Konzept Channels aufgebaut. Ein Channel definiert, wohin und wie Logs geschrieben werden. Dateien, Slack, Syslog und viele weitere Ausgabeziele lassen sich kombinieren. Unter der Haube kommt Monolog zum Einsatz – mit einer Vielzahl an Handlern und Formattern.
Standardmäßig kommt der Channel stack zum Einsatz. stack ist ein übergeordneter Channel, der mehrere Channels bündelt.

Konfiguration

Die Logging-Konfiguration liegt zentral in config/logging.php. Den Standard-Channel wechseln Sie über die Umgebungsvariable LOG_CHANNEL.

Verfügbare Channel-Treiber

Log-Level

Laravel unterstützt die acht Log-Level aus RFC 5424. Nach absteigender Schwere sortiert: Die Option level eines Channels beschreibt den Mindest-Log-Level. Bei level = error werden nur error und höher (critical, alert, emergency) geschrieben.

Grundlegende Verwendung

Die Log-Facade

Verwenden Sie die Facade Illuminate\Support\Facades\Log, um pro Level zu loggen.
Beispiel in einem Controller:

Helper log()

Der Helper log() funktioniert ohne den Import der Facade.

Kontextinformationen hinzufügen

Übergeben Sie zusätzlich zu Nachricht ein Kontext-Array, um zusammengehörige Informationen zu erfassen.

withContext() – gemeinsamen Kontext für einen Channel

Wenn Sie für einen bestimmten Channel jeden folgenden Log-Eintrag mit gemeinsamen Informationen versehen möchten, verwenden Sie withContext(). Gut geeignet für z. B. eine Request-ID.

shareContext() – gemeinsamen Kontext für alle Channels

withContext() wirkt nur auf einen Channel. shareContext() verteilt den Kontext auf alle Channels.

Channels konfigurieren

Der stack-Channel – gleichzeitig in mehrere Ziele schreiben

Mit stack schreibt ein einziger Log-Aufruf in mehrere Channels.
Mit dieser Konfiguration landen alle Logs ab debug in daily, und nur critical oder schlimmer geht zusätzlich an slack.
In der Produktion empfiehlt sich für den slack-Channel das Level error oder critical. Werden zu triviale Meldungen nach Slack gesendet, verschwinden wichtige Alarme in der Nachrichtenflut.

daily – Log-Rotation

Der daily-Channel rotiert Logs pro Tag und löscht ältere Dateien automatisch.
Ein kleiner Wert bei days lässt Logs früh verschwinden. Sorgen Sie in der Produktion für eine ausreichende Aufbewahrungszeit zur Fehleranalyse.

Fehlerbenachrichtigungen an Slack

Erstellen Sie eine Incoming Webhook URL in Slack und hinterlegen Sie sie in der .env.
Ergänzen Sie den slack-Channel im stack-Channel und setzen Sie LOG_CHANNEL=stack, um bei Fehlern automatische Benachrichtigungen zu erhalten.

In einen bestimmten Channel schreiben

Mit Log::channel() wählen Sie den Ziel-Channel explizit aus.

On-Demand-Channels

Mit Log::build() erzeugen Sie einen Channel spontan, ohne ihn in der Konfigurationsdatei zu definieren. Praktisch für Tests oder temporäre Log-Ziele.

Praxisbeispiele

Middleware mit Request-ID

Wenn Sie allen Logs eine gemeinsame Request-ID hinzufügen, lässt sich der Verlauf einer einzelnen Anfrage leicht nachvollziehen.
1

Middleware erzeugen

2

handle() implementieren

3

Middleware registrieren

Als globale Middleware in bootstrap/app.php registrieren.
Ab jetzt enthalten alle Log-Einträge automatisch die request-id.

Deprecation-Warnungen loggen

Sie können Warnungen zu veralteten PHP- oder Laravel-Funktionen protokollieren.
In der .env legen Sie den Channel fest.

Laravel Pail – Logs in Echtzeit anzeigen

Laravel Pail ist ein Entwicklungs-Tool, das Application-Logs live im Terminal darstellt.
Für Pail benötigen Sie die PHP-Erweiterung PCNTL.

Installation

Grundlegende Nutzung

Logs filtern

Zusammenfassung

  • Entwicklungsumgebung: single oder daily in Dateien schreiben.
  • Produktion: stack mit daily (Dateipersistenz) und slack (Fehlermeldungen) kombinieren.
  • Spezielle Logs: Mit Log::build() einen On-Demand-Channel für eine separate Datei anlegen.
  • Echtzeit-Monitoring: php artisan pail im Terminal.
  • debug-Logs können sensible Informationen enthalten. In der Produktion empfiehlt sich LOG_LEVEL=error oder höher.
  • Rotieren Sie Log-Dateien regelmäßig, damit die Festplatte nicht volläuft (Option days des daily-Channels).
  • Achten Sie bei Slack o. Ä. auf Rate Limits. Legen Sie den Level so, dass nur wichtige Fehler benachrichtigen.
Zuletzt geändert am 13. Juli 2026