Isso não parecia tão facilmente acessível quanto eu pensava que deveria ser em algumas pesquisas que fiz, então estou postando uma pergunta / resposta para referência futura.
Exceções lançadas
Você pode ativar as notificações por email para exceções lançadas usando errors / local.xml. Você pode copiar errors/local.xml.template
para `errors / local.xml 'e soltar o endereço de email e a linha de assunto que deseja usar.
<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>
Então, se alguma exceção for lançada e capturada pelo sistema de tratamento de erros do Magento, onde uma tela de relatório de erros é exibida para o usuário final, você receberá uma notificação por email.
Exceções registradas
Se você também deseja receber notificações por e-mail de exceções que não são lançadas, mas registradas, precisará ir um pouco mais longe.
Primeiro, substitua a classe principal do gravador de log .
Depois de fazer isso, basta soltar o código para enviar um e-mail para você mesmo depois que a exceção for registrada. Lembre-se de que você precisa salvar o nome do arquivo de log de dentro do __construct()
para ter acesso a ele pelo _write()
método
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
}
}