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

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


protokolirovanie_oshibok_php

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

protokolirovanie_oshibok_php [2013/06/21 09:02] (текущий)
Строка 1: Строка 1:
 +====== Протоколирование ошибок PHP ======
 +  * [[php.ini]]
 +  * [[Xdebug]] - модуль для отладки PHP скриптов.
  
 +Протоколирование ошибок [[PHP]].
 +
 +**[[http://​php.net/​manual/​ru/​errorfunc.configuration.php|Функции обработки ошибок]]:​**
 +  * debug_backtrace — Выводит стек вызовов функций в массив
 +  * debug_print_backtrace — Выводит стек вызовов функций
 +  * error_get_last — Получение информации о последней произошедшей ошибке
 +  * [[http://​www.php.net/​manual/​ru/​function.error-log.php|error_log]] — Отправляет сообщение об ошибке
 +  * [[http://​php.net/​manual/​ru/​function.error-reporting.php|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
 +[[http://​php.net/​manual/​ru/​errorfunc.configuration.php|Настройка во время выполнения. Настройки конфигурации протоколирования событий и ошибок]]
 +  * 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
 +  * [[http://​www.php.net/​manual/​ru/​function.error-log.php|error_log]]:​ ini_set('​error_log','​php_errors.log'​);​ Все PHP ошибки будут записываться в файл php_errors.log. После включения этого параметра можно использовать одноименную функцию для обработки собственных ошибок,​ например:​ error_log("​Database not available!",​ 0);​
 +
 +
 +  * **Как перенаправить вывод ошибок PHP в браузер непосредственно из скрипта?​** В начало каждого скрипта нужно добавить две строки<​file>​
 +<?php
 +error_reporting(E_ALL);​
 +ini_set('​display_errors',​ 1);
 +//​ini_set('​html_errors',​ 1); // Включить,​ если установлен модуль PHP Xdebug - ошибки
 +// будут выводиться красиво и наглядно
 +ini_set('​log_errors',​ '​On'​);​ // Именно эта опция включает логирование
 +?>
 +</​file>​
 +<note important>​Несмотря на то, что **display_errors** может быть установлена во время выполнения (функцией **ini_set()**),​ это ни на что не повлияет,​ если в скрипте есть фатальные ошибки. Это обусловлено тем, что ожидаемые действия программы во время выполнения не получат управления (не будут выполняться).</​note>​
 +
 +  * **Как подавить вывод ошибок при вызове функции на PHP?** Если перед именем вызываемой функции поставить @, то ошибки выводится не будут.
загрузка...
protokolirovanie_oshibok_php.txt · Последние изменения: 2013/06/21 09:02 (внешнее изменение)