-
XDebug - модуль для отладки PHP скриптов.
Протоколирование ошибок PHP.
Функции обработки ошибок:
debug_backtrace — Выводит стек вызовов функций в массив
debug_print_backtrace — Выводит стек вызовов функций
error_get_last — Получение информации о последней произошедшей ошибке
-
error_reporting — Задает, какие ошибки PHP попадут в отчет. error_reporting(0); - выключит протоколирования ошибок, кроме обрабатываемых программистов вручную. error_reporting(E_ALL); - вывести все ошибки.
restore_error_handler — Восстанавливает предыдущий обработчик ошибок
restore_exception_handler — Восстанавливает предыдущий обработчик исключений
set_error_handler — Задает определенный пользователем обработчик ошибок
set_exception_handler — Задает пользовательский обработчик исключений
trigger_error — Вызывает пользовательскую ошибку/предупреждение/уведомление
user_error — Синоним для trigger_error
Настройка во время выполнения. Настройки конфигурации протоколирования событий и ошибок
error_reporting
display_errors
display_startup_errors
log_errors
log_errors_max_len
ignore_repeated_errors
ignore_repeated_source
report_memleaks
track_errors
html_errors
xmlrpc_errors
xmlrpc_error_number
docref_root
docref_ext
error_prepend_string
error_append_string
error_log: ini_set('error_log','php_errors.log'); Все PHP ошибки будут записываться в файл php_errors.log. После включения этого параметра можно использовать одноименную функцию для обработки собственных ошибок, например: error_log("Database not available!", 0);
Как перенаправить вывод ошибок PHP в браузер непосредственно из скрипта? В начало каждого скрипта нужно добавить две строки
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
//ini_set('html_errors', 1); // Включить, если установлен модуль PHP Xdebug - ошибки
// будут выводиться красиво и наглядно
ini_set('log_errors', 'On'); // Именно эта опция включает логирование
?>
Несмотря на то, что display_errors может быть установлена во время выполнения (функцией ini_set()), это ни на что не повлияет, если в скрипте есть фатальные ошибки. Это обусловлено тем, что ожидаемые действия программы во время выполнения не получат управления (не будут выполняться).