Logging für PHP (Monolog)

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Was ist Logging in PHP und warum wird es benötigt?

Logging ist der Prozess der Aufzeichnung von Informationen über die Arbeit einer Anwendung: Fehler, Warnungen, Debug-Meldungen und Benutzeraktionen. In PHP gibt es im Gegensatz zu Python keinen integrierten PSR-kompatiblen Logger "out of the box" (obwohl es die Funktion error_log() gibt). Daher ist die beste Lösung die Verwendung der Bibliothek Monolog – dem De-facto-Standard für Logging in PHP-Projekten.

Warum loggen?

  • Debugging in der Produktion (Stack Trace von Fehlern)
  • Leistungsüberwachung
  • Sicherheitsaudit (Logins, Datenänderungen)
  • Analyse des Benutzerverhaltens

Installation von Monolog

Die Installation erfolgt über Composer (das Pendant zu pip für PHP):

composer require monolog/monolog

Für die Arbeit wird PHP 8.0+ und Composer 2.x benötigt.

Hauptfunktionen und Möglichkeiten

Monolog unterstützt:

  • Kanäle (Channels) – isolierte Logger für verschiedene Teile der Anwendung (z. B. 'security', 'database')
  • Log-Level (DEBUG, INFO, WARNING, ERROR, CRITICAL u. a.)
  • Handler – wohin geschrieben wird: Dateien, Datenbanken, Slack, Telegram, E-Mail
  • Prozessoren (Processors) – Anreicherung von Nachrichten mit Kontext (IP, Zeit, Session)

Codebeispiel

<?phprequire 'vendor/autoload.php';

use Monolog\\Logger;use Monolog\\Handler\\StreamHandler;use Monolog\\Handler\\TelegramBotHandler;use Monolog\\Processor\\WebProcessor;

// Erstellen des Kanals 'app'$log = new Logger('app');

// Handler zum Schreiben in eine Datei$log->pushHandler(new StreamHandler(__DIR__.'/logs/app.log', Logger::WARNING));

// Handler für Telegram (optional)$telegram = new TelegramBotHandler('YOUR_BOT_TOKEN', 'CHAT_ID', Logger::CRITICAL);$log->pushHandler($telegram);

// Prozessor zum Hinzufügen von IP und User-Agent$log->pushProcessor(new WebProcessor());

// Loggen$log->info('Benutzer hat sich angemeldet', ['user_id' => 123]);$log->error('Datenbankfehler', ['sql' => 'SELECT * FROM users']);

Wann verwenden

Monolog ist in folgenden Fällen obligatorisch:

  • Jedes kommerzielle oder Open-Source-Projekt in PHP (Symfony, Laravel verwenden Monolog standardmäßig)
  • Mikroservices und APIs – zum Tracing von Anfragen
  • Cron-Skripte und Worker – zur Nachverfolgung der Aufgabenausführung
  • Bei der Integration mit externen Diensten (Logs in Graylog, Sentry, Papertrail)

Die Bibliothek wurde in tausenden Projekten getestet und unterstützt praktisch jedes Transportmittel für Logs. Wenn Sie in PHP entwickeln – beginnen Sie mit Monolog.

Empfehlungen