Функции ошибок и журналирования PHP

PHP Error 简介

Функции Error и Logging позволяют вам обрабатывать и записывать ошибки.

Функция Error позволяет пользователям определить правила обработки ошибок и изменить способ записи ошибок.

Функция logging позволяет пользователям вести日志 в приложении и отправлять сообщения日志 по электронной почте, в системный журнал или на другие машины.

Функция error используется для выполнения обработки ошибок и журналирования.

Функция error позволяет нам определить свои правила обработки ошибок и изменить способ записи ошибок.

Функция logging позволяет нам напрямую отправлять сообщения на другие машины, по электронной почте или в системный журнал.

Функция error reporting позволяет нам определить тип и уровень ошибок.

Установка

Функция error является частью ядра PHP. Эти функции могут быть использованы без установки.

Конфигурация времени выполнения

Поведение функции error зависит от настроек, установленных в php.ini.

Конфигурационные параметры ошибок и журналирования такие как: error

Название Стандартное значение Описание Доступные значения
error_reporting NULL Установите уровень отчета об ошибках (целое число или именованный константа). PHP_INI_ALL
display_errors "1"

Определяет, будет ли ошибка выводиться на экран или скрываться от пользователя.

Внимание:Эта функция не должна использоваться в производственных системах (поддерживается только для разработки).

PHP_INI_ALL
display_startup_errors "0"

Даже если display_errors установлен в режим "включен", ошибки, возникающие в процессе запуска PHP, не будут отображаться.

Комментарий: Настоятельно рекомендуется установить display_startup_errors в режим "отключен", кроме целей отладки.

PHP_INI_ALL
log_errors "0"

Установите, будет ли информация об ошибках, возникших при выполнении скрипта, записываться в серверный журнал ошибок или error_log.

Комментарий: Это конфигурационное значение, связанное с сервером.

Комментарий: В производственных системах настоятельно рекомендуется использовать журнал ошибок для записи информации об ошибках, отображаемых на веб-сайте.

PHP_INI_ALL
log_errors_max_len "1024"

Установите максимальное количество байтов для log_errors. В error_log будет добавлена информация о源头 ошибки.

Стандартное значение 1024, если установлено 0, длина не ограничивается.

Этот параметр ограничивает длину записанных ошибок, отображаемых ошибок и переменной $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 в PHP <= 4.2.3.
xmlrpc_errors "0" Если включено, то отключается нормальное сообщение об ошибках, и формат ошибки устанавливается в формат информации об ошибках XML-RPC. PHP_INI_SYSTEM
xmlrpc_error_number "0" Используется в качестве значения элемента faultCode в XML-RPC. PHP_INI_ALL
docref_root "" (доступно с PHP 4.3) PHP_INI_ALL
docref_ext "" (доступно с PHP 4.3.2) PHP_INI_ALL
error_prepend_string NULL Определение строки, которая будет выведена перед информацией об ошибке. PHP_INI_ALL
error_append_string NULL Определение строки, которая будет выведена после информации об ошибке. PHP_INI_ALL
error_log NULL

Настройка файла, в который будут записываться ошибки скрипта. Этот файл должен быть доступен для записи пользователю веб-сервера.

Если используется особое значение syslog, то информация об ошибках будет отправлена в системный журнал.

PHP_INI_ALL

Функции ошибок и журналирования PHP

Функция Описание
debug_backtrace() Генерация backtrace.
debug_print_backtrace() Печать backtrace.
error_get_last() Возврат последней произошедшей ошибки.
error_log() Отправка сообщения об ошибке на сервер, файл или удаленную цель.
error_reporting() Определение,哪个 ошибка будет сообщена.
restore_error_handler() Восстановление прежней программы обработки ошибок.
restore_exception_handler() Восстановление прежней функции обработки исключений.
set_error_handler() Настройка пользовательской функции обработки ошибок.
set_exception_handler() Настройка пользовательской функции обработки исключений.
trigger_error() Создание ошибок уровня пользователя.
user_error() Альтернативное имя trigger_error().

П预制енные ошибки и константы журнала PHP 5

Значение Константа Описание
1 E_ERROR Смертельные ошибки во время выполнения. Некорректируемые ошибки. Останавливают выполнение скрипта.
2 E_WARNING Не смертельные ошибки во время выполнения. Не останавливают выполнение скрипта.
4 E_PARSE Синтаксические ошибки при компиляции. Ошибки анализатора.
8 E_NOTICE Уведомления во время выполнения. Показывают ситуации, которые могут проявляться как ошибки, но могут также присутствовать в работающем скрипте.
16 E_CORE_ERROR Смертельные ошибки в процессе инициализации PHP. Ошибки аналогичны E_ERROR, но созданные ядром PHP.
32 E_CORE_WARNING Предупреждения в процессе инициализации PHP (не смертельные ошибки). Аналогично E_WARNING, но созданные ядром PHP.
64 E_COMPILE_ERROR Смертельные ошибки при компиляции. Аналогично E_ERROR, но созданные движком Zend.
128 E_COMPILE_WARNING Предупреждения при компиляции (не смертельные ошибки). Аналогично E_WARNING, но созданные движком Zend.
256 E_USER_ERROR Ошибки, созданные пользователем. Аналогично E_ERROR, но созданные пользователем с использованием функции PHP trigger_error().
512 E_USER_WARNING Уведомления, созданные пользователем. Аналогично E_WARNING, но созданные пользователем с использованием функции PHP trigger_error().
1024 E_USER_NOTICE Уведомления, созданные пользователем. Аналогично E_NOTICE, но созданные пользователем с использованием функции PHP trigger_error().
2048 E_STRICT Включите рекомендацию PHP по модификации кода, чтобы обеспечить наилучшую совместимость и обратную совместимость.
4096 E_RECOVERABLE_ERROR Заблудившиеся ошибки, которые могут быть捕获ены. Это означает, что произошла потенциально опасная ошибка, но PHP-движок все еще стабилен. Если ошибка не была捕获 обработчиком ошибок пользователя (см. set_error_handler()), она станет E_ERROR, и скрипт прекратит работу.
8192 E_DEPRECATED Уведомления в режиме выполнения. После включения будут предоставляться предупреждения о коде, который может не работать в будущих версиях.
16384 E_USER_DEPRECATED Предупреждения, созданные пользователями. Аналогичны E_DEPRECATED, но создаются пользователем с помощью функции PHP trigger_error() в коде.
32767 E_ALL E_STRICT все ошибки и сообщения об ошибках, кроме тех, которые должны быть обработаны явно.