PHP Fehler- und LoggingFunktionen
PHP-Einführung in Fehler und Logging
Fehler- und Logging-Funktionen ermöglichen es Ihnen, Fehler zu behandeln und aufzuzeichnen.
Fehlerfunktionen ermöglichen es Benutzern, Regeln für die Fehlerbehandlung zu definieren und die Art und Weise zu ändern, wie Fehler protokolliert werden.
Logging-Funktionen ermöglichen es Benutzern, Anwendungsaktivitäten zu protokollieren und Protokollnachrichten per E-Mail, an Systemprotokolle oder an andere Maschinen zu senden.
Laufzeitkonfiguration
Die Fehlerfunktionen werden von der Konfigurationsdatei php.ini beeinflusst.
Fehler- und Logging-Konfigurationsoptionen:
| Parameter | Standardwert | Beschreibung | Änderbar |
|---|---|---|---|
| error_reporting | NULL | Legt die PHP-Fehlerberichtsstufe fest und gibt die aktuelle Stufe zurück (numerisch oder als Konstante). | PHP_INI_ALL |
| display_errors | "1" | Diese Option legt fest, ob Fehlermeldungen als Teil der Ausgabe auf dem Bildschirm angezeigt oder vor dem Benutzer verborgen werden. Hinweis:Diese Funktionalität sollte nicht in einer Produktionsumgebung verwendet werden (verwenden Sie sie während der Entwicklung und beim Testen). |
PHP_INI_ALL |
| display_startup_errors | "0" | Selbst wenn display_errors aktiviert ist, werden Fehlermeldungen während des PHP-Starts nicht angezeigt. Es wird dringend empfohlen, display_startup_errors auf off zu setzen, außer zu Debugging-Zwecken. | PHP_INI_ALL |
| log_errors | "0" | Legt fest, ob Skript-Laufzeitfehler im Server-Fehlerprotokoll oder in error_log protokolliert werden. Beachten Sie, dass dies eine serverspezifische Konfigurationsoption ist. | PHP_INI_ALL |
| log_errors_max_len | "1024" | Legt die maximale Byteanzahl von log_errors fest. Informationen zur Fehlerquelle werden zu error_log hinzugefügt. Der Standardwert ist 1024. Wenn der Wert auf 0 gesetzt wird, bedeutet das unbegrenzte Länge. Diese Längeneinstellung gilt für protokollierte Fehler, angezeigte Fehler und $php_errormsg. | PHP_INI_ALL |
| ignore_repeated_errors | "0" | Wiederholte Meldungen nicht protokollieren. Wiederholte Fehler müssen in derselben Codezeile in derselben Datei auftreten, es sei denn, ignore_repeated_source ist auf true gesetzt. | PHP_INI_ALL |
| ignore_repeated_source | "0" | Beim Ignorieren wiederholter Meldungen wird auch die Quelle der Meldung ignoriert. Wenn diese Einstellung aktiviert ist, wird bei wiederholten Meldungen nicht erfasst, ob sie von verschiedenen Dateien oder verschiedenen Quellcodezeilen erzeugt wurden. | PHP_INI_ALL |
| report_memleaks | "1" | Wenn dieser Parameter auf Off gesetzt ist, werden Informationen über Speicherlecks nicht angezeigt (auf stdout oder im Log). | PHP_INI_ALL |
| track_errors | "0" | Wenn aktiviert, steht der letzte Fehler immer in der Variablen $php_errormsg. | PHP_INI_ALL |
| html_errors | "1" | HTML-Tags in Fehlermeldungen deaktivieren. | PHP_INI_ALL PHP_INI_SYSTEM in PHP <= 4.2.3. |
| xmlrpc_errors | "0" | Schaltet die normale Fehlerberichterstattung aus und formatiert Fehler als XML-RPC-Fehlermeldungen. | PHP_INI_SYSTEM |
| xmlrpc_error_number | "0" | Wird als Wert des XML-RPC-faultCode-Elements verwendet. | PHP_INI_ALL |
| docref_root | "" | Das neue Fehlermeldungsformat enthält eine entsprechende Referenzseite, die den Fehler speziell beschreibt oder die Funktion beschreibt, die den Fehler verursacht hat. Um die Handbuchseiten bereitzustellen, können Sie das Handbuch in der entsprechenden Sprache von der offiziellen PHP-Website herunterladen und die URL in ini auf die entsprechende lokale Adresse setzen. Wenn auf Ihre lokale Handbuchkopie über "/manual/" zugegriffen werden kann, können Sie einfach docref_root=/manual/ setzen. Sie müssen außerdem docref_ext passend zum Suffix Ihrer lokalen Dateien festlegen, docref_ext=.html. Natürlich können Sie auch eine externe Referenzadresse festlegen. Zum Beispiel können Sie docref_root=http://manual/en/ oder docref_root="http://landonize.it/?how=url&theme=classic&filter=Landon &url=http%3A%2F%2Fwww.php.net%2F" festlegen |
PHP_INI_ALL |
| docref_ext | "" | Siehe docref_root. | PHP_INI_ALL |
| error_prepend_string | NULL | Inhalt, der vor der Fehlermeldung ausgegeben wird. | PHP_INI_ALL |
| error_append_string | NULL | Inhalt, der nach der Fehlermeldung ausgegeben wird. | PHP_INI_ALL |
| error_log | NULL | Legt die Datei fest, in die Skriptfehler protokolliert werden. Diese Datei muss für den Benutzer des Webservers beschreibbar sein. | PHP_INI_ALL |
Installation
Fehler- und Protokollierungsfunktionen sind Teil des PHP-Kerns. Für die Verwendung dieser Funktionen ist keine Installation erforderlich.
PHP-Fehler- und Logging-Funktionen
PHP: Gibt die früheste PHP-Version an, die diese Funktion unterstützt.
| Funktion | Beschreibung | PHP |
|---|---|---|
| debug_backtrace() | Erzeugt einen Backtrace. | 4 |
| debug_print_backtrace() | Gibt einen Backtrace aus. | 5 |
| error_get_last() | Ruft den zuletzt aufgetretenen Fehler ab. | 5 |
| error_log() | Sendet einen Fehler an das Server-Fehlerprotokoll, eine Datei oder ein Remote-Ziel. | 4 |
| error_reporting() | Legt fest, welche Fehler gemeldet werden. | 4 |
| restore_error_handler() | Stellt den vorherigen Fehler-Handler wieder her. | 4 |
| restore_exception_handler() | Stellt den vorherigen Exception-Handler wieder her. | 5 |
| set_error_handler() | Setzt eine benutzerdefinierte Fehler-Handler-Funktion. | 4 |
| set_exception_handler() | Setzt eine benutzerdefinierte Exception-Handler-Funktion. | 5 |
| trigger_error() | Erzeugt eine benutzerdefinierte Fehlermeldung. | 4 |
| user_error() | Alias von trigger_error(). | 4 |
PHP-Fehler- und Logging-Konstanten
PHP: Gibt die früheste PHP-Version an, die diese Konstante unterstützt.
| Wert | Konstante | Beschreibung | PHP |
|---|---|---|---|
| 1 | E_ERROR | Fataler Fehler zur Laufzeit. Ein Fehler, der nicht behoben werden kann. Beendet die Skriptausführung. | |
| 2 | E_WARNING | Nicht fataler Fehler zur Laufzeit. Beendet die Skriptausführung nicht. | |
| 4 | E_PARSE | Parse-Fehler zur Kompilierungszeit. Parse-Fehler sollten nur vom Parser erzeugt werden. | |
| 8 | E_NOTICE | Hinweis zur Laufzeit. Das Skript findet etwas, das ein Fehler sein könnte, aber es kann auch bei normaler Ausführung des Skripts auftreten. | |
| 16 | E_CORE_ERROR | Fataler Fehler beim PHP-Start. Dies ist wie E_ERROR aus dem PHP-Kern. | 4 |
| 32 | E_CORE_WARNING | Nicht fataler Fehler beim PHP-Start. Dies ist wie E_WARNING aus dem PHP-Kern. | 4 |
| 64 | E_COMPILE_ERROR | Fataler Fehler zur Kompilierungszeit. Dies ist wie E_ERROR, das von der Zend Script Engine erzeugt wird. | 4 |
| 128 | E_COMPILE_WARNING | Nicht fataler Fehler zur Kompilierungszeit. Dies ist wie E_WARNING, das von der Zend Script Engine erzeugt wird. | 4 |
| 256 | E_USER_ERROR | Vom Benutzer erzeugter fataler Fehler. Dies ist wie E_ERROR, das vom Programmierer mithilfe der PHP-Funktion trigger_error() erzeugt wird. | 4 |
| 512 | E_USER_WARNING | Vom Benutzer erzeugter nicht fataler Fehler. Dies ist wie E_WARNING, das vom Programmierer mithilfe der PHP-Funktion trigger_error() erzeugt wird. | 4 |
| 1024 | E_USER_NOTICE | Vom Benutzer erzeugter Hinweis. Dies ist wie E_NOTICE, das vom Programmierer mithilfe der PHP-Funktion trigger_error() erzeugt wird. | 4 |
| 2048 | E_STRICT | Hinweis zur Laufzeit. PHP empfiehlt, dass Sie Ihren Code ändern, um Interoperabilität und Kompatibilität zu verbessern. | 5 |
| 4096 | E_RECOVERABLE | Abfangbarer schwerwiegender Fehler. Dies ist wie ein E_ERROR, der von einem benutzerdefinierten Handler abgefangen werden kann (siehe set_error_handler()). | 5 |
| 6143 | E_ALL | Alle Fehler- und Warnstufen, außer E_STRICT (ab PHP 6.0 wird E_STRICT Teil von E_ALL sein). | 5 |