Описание

Плагин Error Monitor & Notifier для WordPress с кодовым названием «Енот» (только т-с-с!) автоматически отлавливает ошибки и исключения, которые не обработали в PHP-коде вручную. Плагин умеет  обнаруживать баги, в каком бы месте скрипта или на какой бы странице сайта не возникла ошибка.

Плагин также перехватывает ошибки JavaScript-кода в браузере клиента и сообщает об ошибках БД. Перехват JS-ошибок и ошибок при запросах к базе данных отдельно включаются в настройках плагина и дополняют функции мониторинга ошибок в PHP-коде, превращая плагин Error Monitor & Notifier в инструмент комплексного отслеживания сбоев на Вордпресс-сайте.


Механизм перехвата и обработки ошибок на WordPress-сайте

Плагин регистрирует набор обработчиков, которые помогают перехватывать ошибки  всех уровней.

Отдельный обработчик перехватывает ошибки уровня уведомления E_*NOTICE, предупреждения E_*WARNING и фатальной ошибки E_*ERROR, включая ошибки пользовательского уровня наподобие E_USER_WARNING.

Дополнительно плагин регистрирует обработчик исключений, который перехватывает критические ошибки подтипа Throwable (Error|Exception) наподобие ValueError, ParseError или TypeError, и исключений InvalidArgumentException или UnexpectedValueException, которые не обработали вручную. Обработчик исключений обнаружит ошибку, даже если она возникла в неожиданном месте кода: в файле functions.php, в вашем или стороннем плагине, теме или даже файлах ядра WordPress. Error Monitor & Notifier перехватывает 100 % исключений, которые не обработали в блоке try-catch. Это те ошибки, при которых в логе появляются записи Fatal error: Uncaught Exception или Fatal error: Uncaught Error.

При критических ошибках PHP завершает работу скриптов и работа сайта завершается. При этом каждая операция, которая выполнялась в момент сбоя, тоже завершается. Действия, которые планировались на сервере после точки сбоя, — не выполняются, включая обработку заказов, взаимодействие с базой данных, уведомления пользователей и другие операции. При таких сбоя пользователь часто видит белый экран «смерти» и остается наедине с ошибкой.

Кроме обработчиков ошибок и исключений, плагин регистрирует обработчик события shutdown, которое наступает в конце выполнения главного потока PHP-кода. Функция завершения работы срабатывает каждый раз после выполнения PHP-скрипта. Плагин Error Monitor & Notifier не выполняет действий, когда скрипты завершают работу нормально, но «вклинивание» в процесс на последнем этапе жизненного цикла помогает плагину получить и обработать последнюю ошибку. Этот механизм гарантирует перехват и обработку каждой ошибки, которая возникла в коде.

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


Ранняя загрузка плагина

После активации плагин Error Monitor & Notifier создает Must-Use-плагин, который загружает сам плагин Error Monitor & Notifier на ранней стадии загрузки ядра WordPress, еще до загрузки других плагинов, тем, шаблонов или других частей сайта.

За счет ранней загрузки плагина и первоочередной регистрации обработчиков ошибок и исключений плагин начинает мониторинг ошибок фактически сразу после обращения к сайту.

Это краткий, но важный для знакомства с механизмом обработки ошибок плагином Error Monitor & Notifier абзац.

После активации плагина лучше проверить, что каталог wp-content/mu-plugins содержит файл MU-плагина с названием enotpremiummu.php или enotmu.php для бесплатной версии модуля.

Как включить раннюю загрузку мониторинга ошибок вручную

В отдельных редких случаях не получается запустить раннюю загрузку плагина из-за ограничений прав на запись в каталог mu-plugins или неправильных настроек владельца директории.

  1. В каталоге wp-content создайте каталог mu-plugins, если каталог еще не существует, например: /var/www/example.com/wp-content/mu-plugins или /home/john/public_html/wp-content/mu-plugins
  2. Проверьте, чтобы права доступа на каталог mu-plugins соответствовали маске 0755
  3. Убедитесь, что владелец и группа каталога mu-plugins повторяют владельца и группу, которым принадлежит каталог wp-content
  4. Скопируйте файл enot*mu.php из корневого каталога плагина Error Monitor & Notifier в каталог wp-content/mu-plugins
  5. Готово! Теперь плагин перехватывает ошибки с самого начала загрузки WordPress.

Режим восстановления WordPress

Recovery mode, которой появился в WordPress версии 5.2, справляется с критическими ошибками, но не с каждой, и присылает уведомление не чаще одного раза в день для каждого типа ошибки, хотя интервал переопределяется фильтрами.

Стандартный режим восстановления не запускается при большей части ошибок в плагине магазина WooCommerce или при ошибках, которые возникают в AJAX-запросах, когда отправляют форму или оформляют заказ.

Error Monitor & Notifier обнаруживает каждую возможную ошибку или исключение, включая ошибки в JavaScript-коде или SQL-запросах. Для настройки мониторинга ошибок не потребуется писать код; управление чувствительностью к уровню ошибок, каналами оповещения или приостановкой повторных сообщений доступно в административной части сайта.

Добавить комментарий

Адрес эл. поты не публикуется. Обязательные поля помечены *

Прокрутить вверх