Funkcje błędów i logowania PHP

Wprowadzenie do PHP Error

Funkcje Error i Logging pozwalają na obsługę i zapisywanie błędów.

Funkcje Error pozwalają użytkownikom zdefiniować reguły obsługi błędów oraz zmieniać sposób zapisywania błędów.

Funkcje logowania pozwalają użytkownikom logować aplikacje oraz wysyłać komunikaty logowania do e-maili, dzienników systemowych lub innych maszyn.

Funkcje error są używane do obsługi błędów i logowania.

Funkcje error pozwalają zdefiniować własne reguły obsługi błędów oraz zmieniać sposób zapisywania błędów.

Funkcje logowania pozwalają wysyłać komunikaty bezpośrednio do innych maszyn, e-maili lub dzienników systemowych.

Funkcje raportowania błędów pozwalają określić typy i poziomy błędów.

Instalacja

Funkcje error są częścią rdzenia PHP. Nie wymagają instalacji do użycia.

Konfiguracja uruchomieniowa

Zachowanie funkcji error jest wpływowane przez ustawienia w pliku php.ini.

Opcje konfiguracji błędów i logowania:

Nazwa Domyślne wartości Opis Zakres modyfikacji
error_reporting NULL Ustawienie poziomu raportowania błędów (liczba całkowita lub nazwa stała). PHP_INI_ALL
display_errors "1"

Określenie, czy błędy mają być wyświetlane na ekranie jako wyjście, czy ukryte przed użytkownikiem.

Uwaga:Ta funkcjonalność nie powinna być używana w systemach produkcyjnych (obsługiwana tylko w trybie deweloperskim).

PHP_INI_ALL
display_startup_errors "0"

Nawet jeśli display_errors jest ustawione na włączone, błędy podczas procesu uruchamiania PHP nie będą wyświetlane.

Komentarz: Silnie zalecamy ustawienie display_startup_errors na wyłączone poza celami debugowania.

PHP_INI_ALL
log_errors "0"

Ustawienie, czy błędy wynikające z uruchamiania skryptu mają być zapisywane w dzienniku błędów serwera lub error_log.

Komentarz: To jest specyficzna konfiguracja związana z serwerem.

Komentarz: W systemach produkcyjnych, silnie zalecamy używanie logów błędów do zapisywania informacji o błędach wyświetlanych na stronie.

PHP_INI_ALL
log_errors_max_len "1024"

Ustawienie maksymalnej liczby bajtów log_errors. W error_log zostanie dodana informacja o źródle błędu.

Domyślna wartość to 1024, ustawienie na 0 oznacza brak ograniczeń dotyczących długości.

Ustawienie tej długości ma wpływ na zapisywane błędy, wyświetlane błędy oraz $php_errormsg.

PHP_INI_ALL
ignore_repeated_errors "0"

Zdefiniuj, czy powtarzające się informacje o błędach mają być zapisywane.

Powtarzające się błędy muszą występować w tym samym pliku na tym samym wierszu kodu, chyba że ustawienie ignore_repeated_source jest ustawione na true.

PHP_INI_ALL
ignore_repeated_source "0"

Zdefiniuj, czy powtarzające się informacje o błędach mają być zapisywane. Ignorując powtarzające się komunikaty, również ignoruje się ich źródło.

Gdy ustawienie jest włączone, powtarzające się informacje nie będą zapisywane jako pochodzące z różnych plików lub różnych wierszy kodu.

PHP_INI_ALL
report_memleaks "1" Jeśli parametr ustawiony na On (domyślnie), wyświetl raporty o wyciekach pamięci wykryte przez menedżer pamięci Zend. PHP_INI_ALL
track_errors "0" Jeśli włączone, ostatni błąd będzie zawsze istniał w zmiennej $php_errormsg. PHP_INI_ALL
html_errors "1" Wyłącz tagi HTML w informacjach o błędach.
  • PHP_INI_ALL
  • PHP_INI_SYSTEM w PHP <= 4.2.3.
xmlrpc_errors "0" Jeśli włączone, wyłącz normalne zgłaszanie błędów i ustaw format błędów na format informacji o błędach XML-RPC. PHP_INI_SYSTEM
xmlrpc_error_number "0" Używane jako wartość elementu faultCode w XML-RPC. PHP_INI_ALL
docref_root "" (dostępne od PHP 4.3) PHP_INI_ALL
docref_ext "" (dostępne od PHP 4.3.2) PHP_INI_ALL
error_prepend_string NULL Zdefiniuj ciąg, który ma być wyświetlony przed informacją o błędzie. PHP_INI_ALL
error_append_string NULL Zdefiniuj ciąg, który ma być wyświetlony po informacji o błędzie. PHP_INI_ALL
error_log NULL

Ustaw plik, do którego będą zapisywane błędy skryptu. Plik musi być zapisywalny przez użytkownika serwera.

Jeśli użyto specjalnej wartości syslog, wysyłaj informacje o błędach do systemowego rejestrera logów.

PHP_INI_ALL

Funkcje błędów i logowania PHP

Funkcja Opis
debug_backtrace() Generuj backtrace.
debug_print_backtrace() Wydrukuj backtrace.
error_get_last() Zwróć ostatni wystąpiły błąd.
error_log() Wysyłaj komunikaty o błędach do dziennika błędów serwera, pliku lub zdalnego celu.
error_reporting() Zdefiniuj, który błąd ma być zgłaszany.
restore_error_handler() Odzyskaj wcześniejszy program obsługi błędów.
restore_exception_handler() Odzyskiwanie poprzedniego programisty obsługi wyjątków.
set_error_handler() Ustawienie funkcji obsługi błędów użytkownika.
set_exception_handler() Ustawienie funkcji obsługi wyjątków użytkownika.
trigger_error() Tworzenie błędów na poziomie użytkownika.
user_error() Alias funkcji trigger_error()

Zdefiniowane przez PHP 5 błędy i konstanty logowania

Wartość Stała Opis
1 E_ERROR Fatalne błędy na etapie działania. Niepoprawne błędy, które nie mogą być naprawione. Zatrzymują wykonywanie skryptu.
2 E_WARNING Nie-fatalne błędy na etapie działania. Nie zatrzymują wykonywania skryptu.
4 E_PARSE Błędy analizatora na etapie kompilacji. Błędy analizatora generowane są wyłącznie przez analizator.
8 E_NOTICE Informacje o błędach na etapie działania. Oznacza, że skrypt napotkał sytuację, która może być błędem, ale może również działać normalnie.
16 E_CORE_ERROR Katastroficzne błędy na etapie inicjalizacji PHP. Błąd podobny do E_ERROR, ale generowany przez rdzeń silnika PHP.
32 E_CORE_WARNING Ostrzeżenia na etapie inicjalizacji PHP (nie-fatalne błędy). Podobne do E_WARNING, ale generowane przez rdzeń silnika PHP.
64 E_COMPILE_ERROR Katastroficzne błędy na etapie kompilacji. Podobne do E_ERROR, ale generowane przez silnik skryptów Zend.
128 E_COMPILE_WARNING Ostrzeżenia na etapie kompilacji (nie-fatalne błędy). Podobne do E_WARNING, ale generowane przez silnik skryptów Zend.
256 E_USER_ERROR Informacje o błędach generowanych przez użytkownika. Podobne do E_ERROR, ale generowane przez użytkownika w kodzie za pomocą PHP funkcji trigger_error().
512 E_USER_WARNING Informacje o ostrzeżeniach generowanych przez użytkownika. Podobne do E_WARNING, ale generowane przez użytkownika w kodzie za pomocą funkcji PHP trigger_error().
1024 E_USER_NOTICE Informacje o powiadomieniach generowanych przez użytkownika. Podobne do E_NOTICE, ale generowane przez użytkownika w kodzie za pomocą funkcji PHP trigger_error().
2048 E_STRICT Włącz sugeracje dotyczące modyfikacji kodu PHP, aby zapewnić najlepszą zgodność i kompatybilność wsteczną.
4096 E_RECOVERABLE_ERROR Błędy krytyczne, które można uchwycić. Oznacza to, że wystąpił błąd potencjalnie bardzo niebezpieczny, ale nie spowodował, że silnik PHP jest w stanie niestabilnym. Jeśli błąd nie został ujęty przez zdefiniowany przez użytkownika handler (zobacz set_error_handler()), staje się E_ERROR i skrypt zakończy działanie.
8192 E_DEPRECATED Powiadomienia w czasie działania. Po włączeniu, dla kodu, który może nie działać poprawnie w przyszłych wersjach, będą wydawane ostrzeżenia.
16384 E_USER_DEPRECATED Ostrzeżenia generowane przez użytkownika. Podobne do E_DEPRECATED, ale generowane przez użytkownika w kodzie za pomocą funkcji PHP trigger_error().
32767 E_ALL E_STRICT Wszystkie błędy i ostrzeżenia, chyba że określone inaczej.