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/monologFü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.
Auch in der Bibliothek
Twig für PHP: Komplette Anleitung mit Beispielen
Bogus für C# (.NET): Das vollständige Tutorial mit Beispielen
awilix für TypeScript: Vollständiges Guide mit Beispielen
Autorisierung und Authentifizierung in C# (.NET): Vollständiger Leitfaden
JSON-Verarbeitung in Rust: serde_json, simd-json, json5 und andere Bibliotheken