Dies schien mir nicht so leicht zugänglich zu sein, wie ich es mir aufgrund einiger meiner Recherchen vorgestellt hatte. Deshalb poste ich eine Frage / Antwort, um später darauf zurückgreifen zu können.
Ausnahmen ausgelöst
Sie können E-Mail-Benachrichtigungen für Ausnahmen aktivieren, die mit errors / local.xml ausgelöst werden. Sie können Ihre errors/local.xml.template
nach `errors / local.xml 'kopieren und die E-Mail-Adresse und die Betreffzeile eingeben, die Sie verwenden möchten.
<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>
Wenn das Fehlerbehandlungssystem von Magento Ausnahmen auslöst und diese abfängt und dem Endbenutzer ein Fehlerbericht angezeigt wird, erhalten Sie eine E-Mail-Benachrichtigung.
Protokollierte Ausnahmen
Wenn Sie auch E-Mail-Benachrichtigungen für Ausnahmen erhalten möchten, die nicht ausgelöst, sondern protokolliert werden, müssen Sie sich ein wenig näher damit befassen.
Zuerst überschreiben Sie die Log - Writer - Klasse Kern .
Sobald Sie dies getan haben, geben Sie einfach den Code ein, um sich eine E-Mail zu senden, nachdem die Ausnahme protokolliert wurde. Denken Sie daran, dass Sie den Protokolldateinamen in der Datei speichern müssen, um __construct()
von der _write()
Methode aus darauf zugreifen zu können .
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
}
}