Це не здавалося настільки легкодоступним, як я вважав, що це повинно бути з деяких пошукових запитів, які я робив, тому я розміщую питання / відповідь для подальшого ознайомлення.
Викинуті винятки
Ви можете ввімкнути сповіщення електронною поштою за винятками, які передаються за допомогою помилок / local.xml. Ви можете скопіювати свої errors/local.xml.template
файли на `помилки / 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
}
}