Описание
Уведомления об ошибках помогают мгновенно выявить причины сбоев и быстро исправить ошибки, чтобы сайт работал бесперебойно, а бизнес не терял клиентов из-за скрытых сбоев.
Разработчики устанавливают плагин, чтобы узнать о конкретных или обо всех ошибках в PHP-коде, даже если ошибка возникла в неожиданном месте, которое невозможно предусмотреть заранее.
Плагин поддерживает настройку типов ошибок, о которых требуется отправлять уведомления. Неперехваченные исключения не сломают сайт, поскольку исключения регистрируются и становятся доступными для централизованной пользовательской обработки через фильтр enot_exception_handler_should_exit
. Только настоящие фатальные ошибки останавливают скрипт, но вы все равно получите полную информацию об ошибке.
Уведомление будет содержать тип ошибки, название файла и номер строки, в которой возникла ошибка или неперехваченное исключение, и трассировку стека вызовов.
Владельцы сайта после установки плагина указывают в настройках плагина адрес эл. почты разработчика, который обслуживает сайт, чтобы плагин обнаруживал сбои и отправлял разработчику сообщения о серьезных ошибках, из-за которых бизнес теряет заказы или клиентов.
Уведомление с подробной информацией о причинах ошибки укажет программисту, какой плагин или тема вызвали сбой (что часто остается незамеченным в течение длительного времени при автоматических обновлениях плагинов или тем), и разработчик исправит ошибку, прежде чем о сбое сообщит клиент.
Это также помогает узнавать о критических ошибках даже без доступа к журналам сервера или панели управления WordPress.
Примечание: Ошибки *_NOTICE or *_WARNING не ломают сайт, тогда как критические ошибки нарушают работу сайта, а пользователь получает негативный опыт.
Функции
- Настраиваемые уровни PHP-ошибок
- Перехват исключений, которые не обработали в блоке try-catch
- Журналирование трассировки стека, ошибок, которые подавили оператором @, и JavaScript-ошибок (только Premium)
- Дружественное сообщение для пользователей при критических PHP-ошибках
- Настройка адреса эл. почты для уведомлений
- Поддержка многоязычности: RU, EN
- Бесплатные обновления до версий с новыми функциями (только Premium)
- Уведомления об ошибках по эл. почте
- Уведомления об ошибках в Телеграм (только Premium)
- Уведомления об ошибках в JavaScript-коде (только Premium)
- Уведомления об ошибках базы данных (только Premium)
Скриншоты
Установка
Установите плагин аналогично другим WordPress-плагинами или загрузите файлы плагина в каталог wp-content/plugins/error-monitor-and-notifier
.
Из панели управления WordPress:
- Перейдите в раздел Плагины Добавить плагин
- Найдите «Error Monitor & Notifier»
- Установите и активируете Error Monitor & Notifier на странице Плагины
- Нажмите на новый элемент меню — «Error Monitor» и настройте уведомления
- Смотрите the документацию
Ссылки
Часто задаваемые вопросы
-
Каким способом плагин отправляет уведомления об ошибках, когда сайт ломается или возвращает внутреннюю ошибку 500 Internal Server Error?
-
Error Monitor & Notifier цепляется к PHP-функции завершения работы при событии shutdown — обработчик, который запускается даже при фатальных ошибках. Поэтому плагин умеет обнаруживать и сообщать об ошибках наподобие Fatal Error, исключениях ParseError, неотловленных исключениях с сообщением Uncaught Exception, о превышении предела доступной памяти и других критических PHP-сбоях.
Плагин собирает подробную информацию об ошибке, включая трассировку стека, номер файла и строки, URL-адрес, пользовательский агент и многое другое, и отправляет информацию по электронной почте или в Telegram непосредственно перед остановкой выполнения скрипта PHP-движком, даже если на сайте отображается белый экран смерти (англ. White Screen of Death, WSOD) или возвращается ошибка 500.
Это гарантирует, что уведомление о проблеме поступит, как только возникнет ошибка, и разработчики устранят ошибку, прежде чем о ней сообщат посетители сайта.
-
Как остановить избыточные дубликаты оповещений об ошибках?
-
Включите настройку «Не обрабатывать повторные ошибки».
При разработке или на живых сайтах иногда генерируются десятки или даже сотни оповещений об одной и той же ошибке. С этой настройкой плагин генерирует уникальный хеш для каждой ошибки и исключает отправку дубликатов, что значительно снижает количество нежелательных оповещений.
Совет: Уведомления о конкретных типах ошибок отключают, пока не исправят ошибку, и повторно включают после решения проблемы.
-
Сломают ли сайт неотловленные исключения?
-
Нет, за счёт фильтра
enot_exception_handler_should_exit
неотловленные исключения не вызовут сбой сайта.Error Monitor & Notifier перехватывает 100 % неотловленных исключений и ошибок в PHP-коде, которые выбрасываются как объекты классов
Error
,Exception
и исключения пользовательских типов. Плагин перехватывает исключение, прежде чем PHP прерывает выполнение скрипта, если исключение не обработали в блокеtry-catch
или если исключение выбросила тема, плагин или ядро.Фильтр
enot_exception_handler_should_exit
определяет, требуется ли прерывать выполнение скрипта или продолжить выполнять код:add_filter('enot_exception_handler_should_exit', static function (bool $should_exit, \Throwable $e): bool { if ($e instanceof MyCustomException) { my_logger()->log("Caught exception: " . $e->getMessage()); return false; // Prevent script termination } return $should_exit; }, 10, 2);
-
Возможно ли проигнорировать конкретные ошибки наподобие предупреждений, которые генерирует плагин WooCommerce?
-
Да, только добавьте обработку фильтра
enot_ignore_error
.Иногда требуется подавить шумные или некритические ошибки, которые возникают в плагинах наподобие WooCommerce или темах. Вот как проигнорировать обработку конкретной ошибки:
add_filter('enot_ignore_error', static function (bool $ignore, \ErrorException $e): bool { if ($e->getSeverity() === E_WARNING && strpos($e->getFile(), '/plugins/woocommerce/') !== false) { return true; // Ignore this error } return $ignore; }, 10, 2);
Рекомендация: Добавьте обработчик фильтра в файл наподобие
mu-plugins/enot-ignore-error.php
, чтобы прикрепиться к фильтру как можно раньше, даже во время событий cron или AJAX-запросов.
Отзывы
Участники и разработчики
«Error Monitor & Notifier» — проект с открытым исходным кодом. В развитие плагина внесли свой вклад следующие участники:
Участники«Error Monitor & Notifier» переведён на 1 язык. Благодарим переводчиков за их работу.
Перевести «Error Monitor & Notifier» на ваш язык.
Заинтересованы в разработке?
Посмотрите код, проверьте SVN репозиторий, или подпишитесь на журнал разработки по RSS.
Журнал изменений
1.0.4 (2025-06-02):
- Добавление ошибок уровня E_PARSE в стандартный набор уведомлений об ошибках
- Добавление нового хука фильтрации: ‘enot_exception_handler_should_exit’
- Добавление в файл readme.txt раздела FAQ
1.0.3 (2025-06-01):
- Обновление перевода
1.0.2 (2025-05-30):
- Исправление ошибки удаления
1.0.1 (2025-05-20):
- Включение всех уровней ошибок как отлавливаемые
- Изменение условий лицензии на GPL
- Улучшение очистки данных
- Изменение текстового домена с «enot» на «error-monitor-and-notifier»
1.0.0 (2025-03-31):
- Выпуск