PHP-Fehler in einer Datenbank statt in error_log protokollieren
Ist es möglich, PHP so zu konfigurieren, dass Fehler direkt in einer MySQL-Datenbank protokolliert werden, statt in der Standard-error_log-Datei? Obwohl die Implementierung eines benutzerdefinierten Fehlerhandlers ein praktikabler Ansatz ist, würde dies erhebliche Codeänderungen erfordern. Gibt es eine globalere Lösung?
Antwort:
Leider ist es nicht möglich, dies zu erreichen, ohne einen benutzerdefinierten Fehlerhandler zu erstellen. Dieser benutzerdefinierte Fehlerhandler würde jedoch effektiv als die gewünschte „eine globale Änderung“ dienen.
Das modifizierte Beispiel aus dem PHP-Handbuch zeigt, wie dies erreicht werden kann:
function myErrorHandler($errno, $errstr, $errfile, $errline) { // Establish a connection to the MySQL database here mysql_query("INSERT INTO error_log (number, string, file, line) ". "VALUES ....."); /* Suppress PHP internal error handler from executing */ return true; }
Um die zu aktivieren Benutzerdefinierter Fehlerhandler:
// Assign the custom error handler $old_error_handler = set_error_handler("myErrorHandler");
Das obige ist der detaillierte Inhalt vonKann PHP Fehler direkt in einer MySQL-Datenbank protokollieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!