Это не было так легко доступно, как я думал, что это должно быть из некоторых поисков, которые я сделал, поэтому я публикую вопрос / ответ на вопрос для дальнейшего использования.
Брошенные исключения
Вы можете включить уведомления по электронной почте для исключений, которые генерируются с помощью errors / local.xml. Вы можете скопировать свой файл errors/local.xml.template
в «errors / local.xml» и указать адрес электронной почты и строку темы, которые вы хотите использовать.
<config>
<skin>default</skin>
<report>
<action>email</action>
<subject>domain.com exception</subject>
<email_address>name@example.com</email_address>
<trash>leave</trash>
</report>
</config>
Затем, если какие-либо исключения будут сгенерированы и перехвачены системой обработки ошибок Magento, где конечному пользователю отображается экран отчета об ошибке, вы получите уведомление по электронной почте.
Записанные исключения
Если вы также хотите получать уведомления по электронной почте об исключениях, которые не генерируются, а скорее регистрируются, вам нужно немного продвинуться под капотом.
Сначала переопределите базовый класс записи журнала .
Как только вы это сделаете, просто вставьте код, чтобы отправить себе электронное письмо после того, как исключение будет зарегистрировано. Помните, что вам нужно сохранить имя файла журнала изнутри __construct()
, чтобы иметь доступ к нему из _write()
метода.
class Module_Core_Model_Zend_Log_Writer_Stream extends Zend_Log_Writer_Stream
{
protected $_streamOrUrl;
public function __construct($streamOrUrl, $mode = NULL)
{
parent::__construct($streamOrUrl, $mode);
$this->_streamOrUrl = $streamOrUrl;
}
protected function _write($event)
{
parent::_write($event);
if (strpos($this->_streamOrUrl, 'exception.log') === false) {
return;
}
// Send email here
}
}