Questo non mi è sembrato facilmente accessibile come pensavo dovesse essere da qualche ricerca che ho fatto, quindi sto postando una domanda domanda / risposta per riferimento futuro.
Eccezioni generate
È possibile abilitare le notifiche e-mail per le eccezioni generate mediante errori / local.xml. Puoi copiarlo errors/local.xml.template
in `errors / local.xml 'e rilasciare l'indirizzo e-mail e l'oggetto che desideri utilizzare.
<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>
Quindi, se qualche eccezione viene generata e rilevata dal sistema di gestione degli errori di Magento, in cui viene visualizzata una schermata di segnalazione errori all'utente finale, riceverai una notifica via e-mail.
Eccezioni registrate
Se desideri anche ricevere notifiche via email per le eccezioni che non vengono generate ma piuttosto vengono registrate, dovrai andare un po 'più in là.
Innanzitutto, sovrascrivere la classe principale del writer di log .
Una volta che lo hai fatto, inserisci il codice per spararti un'e-mail dopo aver registrato l'eccezione. Ricordare che è necessario salvare il nome del file di registro all'interno __construct()
per poter accedere ad esso dal _write()
metodo.
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
}
}