Esto no parecía tan accesible como pensé que debería ser de algunas búsquedas que hice, así que estoy publicando una pregunta / respuesta para futuras referencias.
Excepciones lanzadas
Puede habilitar las notificaciones por correo electrónico para las excepciones que se generan con errores / local.xml. Puede copiar su errors/local.xml.template
en `errors / local.xml 'y colocar la dirección de correo electrónico y la línea de asunto que desea 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>
Luego, si el sistema de manejo de errores de Magento arroja y captura alguna excepción, donde se muestra una pantalla de informe de error al usuario final, recibirá una notificación por correo electrónico.
Excepciones registradas
Si también desea recibir notificaciones por correo electrónico para las excepciones que no se lanzan, sino que se registran, deberá avanzar un poco más bajo el capó.
Primero, anule la clase principal de escritor de registros .
Una vez que hayas hecho eso, solo coloca el código para enviarte un correo electrónico después de que se registre la excepción. Recuerde que debe guardar el nombre del archivo de registro desde dentro __construct()
para poder acceder a él desde el _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
}
}