Error Monitor & Notifier

Описание

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

Разработчики устанавливают плагин, чтобы узнать о конкретных или обо всех ошибках в 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:

  1. Перейдите в раздел Плагины Добавить плагин
  2. Найдите «Error Monitor & Notifier»
  3. Установите и активируете Error Monitor & Notifier на странице Плагины
  4. Нажмите на новый элемент меню — «Error Monitor» и настройте уведомления
  5. Смотрите 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-запросов.

Отзывы

25.06.2025
Wordpress has this feature (Also known as the «White screen of death» that when you have a severe error on your site, It just shows a white page saying that «There has been a critical error on your website». You are left to find out what went wrong on your own. There are tons of articles with messages such as «Best X ways to find out why you get the Wordpress white screen of death» — most tell you to start turning off different plugins, switch to a default theme, use some DEBUG flags and search your logs so on. but hey, when you turn of the plugins the error does not happen — so how do i know what is the problem — even if after a long session of deactivating and re-activating different groups of plugins you end up knowing in which plugin is the error… you still don’t know what the error is….Enter this wonderful plugin…Install it, configure its settings, and wham… you have the errors in your mailbox — yep, the URL, the Exception, the call stack, the user ID and more — debug away and your done.If you so wish and are willing to pay a modest sum for the premium version — you will also be able to set it up to send your own custom debug data and get the notifications sent to you via Telegram, get notified about JS error and more….Go And Install it… you will never want to go back. (you thank me here in your own review…)
Посмотреть 1 отзыв

Участники и разработчики

«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):

  • Выпуск