Sven Rautenberg: Errorlog erweitern

Beitrag lesen

Moin!

ich hab das PHP-Interne error_log ein wenig erweitert und würde gerne eure Meinungen bzw. verbesserungsvorschläge dazu einholen.

Über das korrekte Loggen habe sich schon Generationen von Programmierern so ihre Gedanken gemacht. Deine Variante gefällt mir aus mehreren Gründen nicht:

1. Ich muß eine DB-Connection haben, wenn ich loggen will. Habe ich nicht immer. Und die Abhängigkeit der Log-Funktion von DB-Funktionen ist auch extrem unschön, weil Datenbankzugriffe einfach nicht in den Machtbereich eines Loggers gehören.

2. error_log() arbeitet mit diversen Logzielen, die in der php.ini konfiguriert werden können - nicht nur mit Dateien! Deine Erweiterung geht aber fest von einer eigenständigen Datei aus, die auch noch löschbar sein soll. Diese Erwartungshaltung verträgt sich nicht mit der Verwendung von error_log(). Wenn du schon einen Datei-only-Logger schreibst, warum schickst du dann die Meldungen nicht per Dateifunktion ins Logfile?

3. Die Konstante ErrorLogFile ist mir unbekannt.

4. Das Löschen einer zu großen Logdatei ist nicht Aufgabe des Loggers, sondern der Logfile-Rotation.

Wenn man diese vier Punkte mal abzieht, kommt eine vernünftige Logmessage-Formatierfunktion für error_log heraus, die dem Logfile ein paar typische Informationen hinzufügen wie z.B. HTTP_HOST und REQUEST_URI.

Unsinnig ist es hingegen, die Datenbank hier mit einzufügen, denn einen DB-Fehler loggt man dann, wenn man sieht, dass einer aufgetreten ist. Man loggt nicht pauschal, um eventuell auch einen DB-Fehler zu erfassen. Die Generierung und Anhübschung des DB-Fehlers gehört also nicht in den Logger selbst, sondern extern in eine Meldungsgenerierungsfunktion.

- Sven Rautenberg