Cela ne semblait pas aussi facilement accessible que je pensais que cela devrait être dû à une recherche que j'ai faite, donc je poste une question / réponse pour une référence future.
Exceptions levées
Vous pouvez activer les notifications par e-mail pour les exceptions levées à l'aide d'erreurs / local.xml. Vous pouvez copier votre errors/local.xml.template
fichier dans «erreurs / local.xml» et déposer l'adresse e-mail et la ligne d'objet que vous souhaitez utiliser.
<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>
Ensuite, si des exceptions sont levées et détectées par le système de gestion des erreurs de Magento, où un écran de rapport d'erreurs s'affiche pour l'utilisateur final, vous recevrez une notification par e-mail.
Exceptions enregistrées
Si vous souhaitez également recevoir des notifications par e-mail pour les exceptions qui ne sont pas levées mais qui sont plutôt enregistrées, vous devrez aller un peu plus loin sous le capot.
Tout d'abord, remplacez la classe principale d'écrivain de journaux .
Une fois que vous avez fait cela, déposez simplement le code pour vous tirer un e-mail après la journalisation de l'exception. N'oubliez pas que vous devez enregistrer le nom du fichier journal dans le __construct()
afin d'y accéder à partir de la _write()
méthode.
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
}
}