Как настроить уведомления по электронной почте для исключений, которые либо регистрируются, либо выбрасываются на сайт?
ОБНОВЛЕНИЕ: Несколько человек прокомментировали тот факт, что вы можете ожидать получить слишком много электронных писем, если у вас есть все исключения по электронной почте. Я предпочитаю вести журнал исключений довольно легким. Все, что там происходит, я рассматриваю как исключение. Если это ожидаемая функциональность, а не проблема, то мне нравится перехватывать исключение, возможно, записывать его в другой файл (возможно, system.log), если это необходимо, но не регистрировать его в файле exception.log.
Но если в вашем файле исключений есть много шума, который вы не хотите чистить, вы, вероятно, не захотите этого делать.
Ответы:
Вы можете использовать Magento Hackthon Logger для этой работы: https://github.com/firegento/firegento-logger/
Это не вопрос, но есть расширения для расширения: https://github.com/magento-hackathon/LoggerSentry/
Что я хочу сказать: легко реализовать свой собственный «писатель» :-)
источник
Это не было так легко доступно, как я думал, что это должно быть из некоторых поисков, которые я сделал, поэтому я публикую вопрос / ответ на вопрос для дальнейшего использования.
Брошенные исключения
Вы можете включить уведомления по электронной почте для исключений, которые генерируются с помощью errors / local.xml. Вы можете скопировать свой файл
errors/local.xml.template
в «errors / local.xml» и указать адрес электронной почты и строку темы, которые вы хотите использовать.Затем, если какие-либо исключения будут сгенерированы и перехвачены системой обработки ошибок Magento, где конечному пользователю отображается экран отчета об ошибке, вы получите уведомление по электронной почте.
Записанные исключения
Если вы также хотите получать уведомления по электронной почте об исключениях, которые не генерируются, а скорее регистрируются, вам нужно немного продвинуться под капотом.
Сначала переопределите базовый класс записи журнала .
Как только вы это сделаете, просто вставьте код, чтобы отправить себе электронное письмо после того, как исключение будет зарегистрировано. Помните, что вам нужно сохранить имя файла журнала изнутри
__construct()
, чтобы иметь доступ к нему из_write()
метода.источник
Отправка каждого исключения по электронной почте, вероятно, приведет к большому количеству писем.
Возможно, было бы лучше просто записать исключения в журнал исключений и отправить их по электронной почте один раз в день, используя cronjob в linux
И, возможно, очистка после отправки по почте
Или вы можете выполнять его каждый час, если вам нужна более высокая частота.
Таким образом, нет необходимости перезаписывать какие-либо файлы и сохранять нагрузку на сервер, который постоянно отправляет вам письма.
источник
может быть, вы также можете быть заинтересованы в моей интеграции Magento / Monolog
https://github.com/aleron75/magemonolog
С уважением Алессандро
источник
Мне не нравится реализация пользовательского writerModel Mage :: log, или я не понимаю этого. Для меня это не использует дизайн Zend_Log, чтобы включить n авторов. Я бы взял журнал, а не писатель. Поэтому я сделал обходной путь, чтобы использовать все преимущества Zend_Log и по-прежнему писать не так много кода, так как я собираю Zend_log.
Кстати, в Magento 1.7 я получаю всего несколько писем. Я полагаю, что в каждом письме есть исключения / ошибки для одного запроса. Так что часто посещаемый сайт все равно будет содержать много писем. Я посмотрю на это. К настоящему времени это нормально для меня.
источник
Вы также можете использовать модуль для создания уведомлений по электронной почте или получать ежедневные отчеты о клиентах, которые получили исключения:
Вот объяснение реализации: https://grafzahl-io.blogspot.de/2017/03/notifications-for-every-exception-in-magento.html
Это модуль для отслеживания ошибок и других событий (даже применить скидку к клиенту, если он получил исключение): https://grafzahl.io/notify-module
источник