PHP-Fehler- und Protokollierungs-Funktionen

PHP Error Einführung

Error und Logging-Funktionen ermöglichen es Ihnen, Fehler zu behandeln und zu protokollieren.

Error-Funktionen erlauben es Benutzern, Fehlerbehandlungsregeln zu definieren und die Art der Fehlerprotokollierung zu ändern.

Logging-Funktionen erlauben es Benutzern, Anwendungen zu protokollieren und Log-Nachrichten an E-Mails, Systemprotokolle oder andere Maschinen zu senden.

Die error-Funktionen werden für die Fehlerbehandlung und -protokollierung verwendet.

Die error-Funktionen erlauben es uns, eigene Fehlerbehandlungsregeln zu definieren und die Art der Fehlerprotokollierung zu ändern.

Logging-Funktionen erlauben es uns, Nachrichten direkt an andere Maschinen, E-Mails oder Systemprotokolle zu senden.

Die error-reporting-Funktionen erlauben uns, den Typ und die Ebene der Fehler zu ändern.

Installation

PHP-Fehlerfunktionen sind Teil des PHP-Kerns. Diese Funktionen müssen nicht installiert werden, um verwendet zu werden.

Laufzeitkonfiguration

Das Verhalten der error-Funktion wird durch die Einstellungen in der php.ini beeinflusst.

Die Konfigurationsoptionen für Errors und Logging sind wie folgt:

Name Standardwert Beschreibung Veränderungsbereich
error_reporting NULL Stellen Sie den Fehlerberichtsbereich (Ganzzahl oder Namenskonstante) ein. PHP_INI_ALL
display_errors "1"

Bestimmt, ob Fehler als Ausgabe auf den Bildschirm ausgegeben oder den Benutzer versteckt werden.

Hinweis:Diese Funktion sollte nicht in Produktionsystemen verwendet werden (nur für die Entwicklung unterstützt).

PHP_INI_ALL
display_startup_errors "0"

Selbst wenn display_errors auf 'EIN' gesetzt ist, werden Fehlermeldungen während des PHP-Startvorgangs nicht angezeigt.

Anmerkung: Es wird dringend empfohlen, display_startup_errors außerhalb der Debugging-Zwecke auszuschalten.

PHP_INI_ALL
log_errors "0"

Stellen Sie ein, ob Fehlermeldungen der Skriptausführung in das Serverfehlerprotokoll oder error_log eingetragen werden sollen.

Anmerkung: Dies ist eine spezifische Konfigurationsoption, die mit dem Server zusammenhängt.

Anmerkung: Es wird dringend empfohlen, in Produktionsystemen Fehlerprotokolle zu verwenden, um Fehlermeldungen anzuzeigen, die auf der Website angezeigt werden.

PHP_INI_ALL
log_errors_max_len "1024"

Setzen Sie die maximale Anzahl von Bytes für log_errors. Im error_log werden Informationen über die Fehlerquelle hinzugefügt.

Der Standardwert beträgt 1024, wenn auf 0 gesetzt, ist die Länge unbegrenzt.

Die Längeneinstellung hat eine begrenzte Wirkung auf die angezeigten Fehler, die im Fehlerprotokoll aufgezeichnet werden und das $php_errormsg.

PHP_INI_ALL
ignore_repeated_errors "0"

规定是否记录重复的错误信息。

重复的错误必须出现在同一个文件中的同一行代码上,除非 ignore_repeated_source 设置为 true。

PHP_INI_ALL
ignore_repeated_source "0"

规定是否记录重复的错误信息。忽略重复消息时,也忽略消息的来源。

当该设置开启时,重复信息将不会记录它是由不同的文件还是不同的源代码行产生的。

PHP_INI_ALL
report_memleaks "1" 如果该参数被设置为 On(默认),则会显示由 Zend 内存管理器侦测到的内存泄露报告。 PHP_INI_ALL
track_errors "0" 如果开启,最后一个错误将永远存在于变量 $php_errormsg 中。 PHP_INI_ALL
html_errors "1" 在错误信息中关闭 HTML 标签。
  • PHP_INI_ALL
  • PHP_INI_SYSTEM in PHP <= 4.2.3.
xmlrpc_errors "0" 如果启用,则关闭正常的错误报告,并将错误的格式设置为 XML-RPC 错误信息的格式。 PHP_INI_SYSTEM
xmlrpc_error_number "0" 用作 XML-RPC faultCode 元素的值。 PHP_INI_ALL
docref_root "" (available since PHP 4.3) PHP_INI_ALL
docref_ext "" (available since PHP 4.3.2) PHP_INI_ALL
error_prepend_string NULL 规定错误信息之前输出的字符串。 PHP_INI_ALL
error_append_string NULL 规定错误信息之后输出的字符串。 PHP_INI_ALL
error_log NULL

设置脚本错误将被记录到的文件。该文件必须是 web 服务器用户可写的。

如果使用了特殊值 syslog,则将错误信息发送到系统日志记录器。

PHP_INI_ALL

PHP-Fehler- und Protokollierungs-Funktionen

函数 Beschreibung
debug_backtrace() 生成 backtrace。
debug_print_backtrace() 打印 backtrace。
error_get_last() 返回最后发生的错误。
error_log() 向服务器错误记录、文件或远程目标发送错误消息。
error_reporting() 规定报告哪个错误。
restore_error_handler() 恢复之前的错误处理程序。
restore_exception_handler() Stellen Sie den vorherigen Ausnahmebehandlungs-Programm wieder her.
set_error_handler() Setzen Sie den benutzerdefinierten Fehlerbehandlungs-Funktion.
set_exception_handler() Setzen Sie den benutzerdefinierten Ausnahmebehandlungs-Funktion.
trigger_error() Erstellen Sie benutzerdefinierte Fehlermeldungen auf Benutzer Ebene.
user_error() Alias für trigger_error()

Vorgedefinierte Fehler- und Protokollierungskonstanten in PHP 5

Wert Konstante Beschreibung
1 E_ERROR Tödliche Laufzeitfehler. Unkorrigierbare Fehler. Stopping des Skriptausführungs erforderlich.
2 E_WARNING Nicht tödliche Laufzeitfehler. Stopping des Skriptausführungs nicht erforderlich.
4 E_PARSE Kompilierungszeit-Syntaxfehler. Fehleranalysator erzeugt nur Syntaxfehler.
8 E_NOTICE Benachrichtigungen bei der Laufzeit. Zeigt an, dass das Skript möglicherweise eine Situation begegnen könnte, die als Fehler erscheinen könnte, aber auch in einem normal laufenden Skript ähnliche Benachrichtigungen geben kann.
16 E_CORE_ERROR Schwere Fehler während des PHP-Initialisierungsstartprozesses. Ein Fehler, der ähnlich wie E_ERROR ist, aber durch den PHP-Engine-Kern generiert wird.
32 E_CORE_WARNING Warnungen während des PHP-Initialisierungsstartprozesses (nicht tödliche Fehler). Ähnlich wie E_WARNING, aber durch den PHP-Engine-Kern generiert.
64 E_COMPILE_ERROR Tödliche Kompilierungsfehler. Ähnlich wie E_ERROR, aber durch die Zend-Skript-Engine generiert.
128 E_COMPILE_WARNING Warnungen bei der Kompilierung (nicht tödliche Fehler). Ähnlich wie E_WARNING, aber durch den Zend-Skript-Engine generiert.
256 E_USER_ERROR Benutzer generierte Fehlermeldungen. Ähnlich wie E_ERROR, aber durch den Benutzer selbst im Code mit PHP-Funktion trigger_error() erzeugt.
512 E_USER_WARNING Benutzer generierte Warnungen. Ähnlich wie E_WARNING, aber durch den Benutzer selbst im Code mit PHP-Funktion trigger_error() erzeugt.
1024 E_USER_NOTICE Benutzer generierte Benachrichtigungsinformationen. Ähnlich wie E_NOTICE, aber durch den Benutzer selbst im Code mit PHP-Funktion trigger_error() erzeugt.
2048 E_STRICT Aktivieren Sie die PHP-Einrichtung zur Überprüfung von Code-Änderungen, um sicherzustellen, dass der Code die beste Interoperabilität und Forward-Kompatibilität hat.
4096 E_RECOVERABLE_ERROR Catchable fatal error. It indicates that a potentially very dangerous error has occurred, but it has not caused the PHP engine to be in an unstable state. If the error is not caught by the user-defined handler (see set_error_handler()), it will become an E_ERROR and the script will terminate.
8192 E_DEPRECATED Runtime notifications. When enabled, it will warn of code that may not work properly in future versions.
16384 E_USER_DEPRECATED User-generated warning messages. Similar to E_DEPRECATED, but generated by the user themselves using the PHP function trigger_error() in the code.
32767 E_ALL E_STRICT all error and warning messages except those.