Инструменты пользователя

Инструменты сайта


Боковая панель

Связь

protokolirovanie_oshibok_php

Протоколирование ошибок PHP

  • XDebug - модуль для отладки PHP скриптов.

Протоколирование ошибок PHP.

Функции обработки ошибок:

  • debug_backtrace — Выводит стек вызовов функций в массив
  • debug_print_backtrace — Выводит стек вызовов функций
  • error_get_last — Получение информации о последней произошедшей ошибке
  • error_log — Отправляет сообщение об ошибке
  • 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()), это ни на что не повлияет, если в скрипте есть фатальные ошибки. Это обусловлено тем, что ожидаемые действия программы во время выполнения не получат управления (не будут выполняться).
  • Как подавить вывод ошибок при вызове функции на PHP? Если перед именем вызываемой функции поставить @, то ошибки выводится не будут.



protokolirovanie_oshibok_php.txt · Последние изменения: 2013/06/21 13:02 (внешнее изменение)