Nie wydawało się to tak łatwo dostępne, jak myślałem, że powinno wynikać z niektórych poszukiwań, więc zamieszczam pytanie / odpowiedź na przyszłe odniesienia.
Zgłaszane wyjątki
Możesz włączyć powiadomienia e-mail o wyjątkach zgłaszanych za pomocą error / local.xml. Możesz skopiować swój errors/local.xml.template
plik na `error / local.xml 'i wpisać adres e-mail oraz wiersz tematu, którego chcesz użyć.
<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>
Następnie, jeśli wyjątki zostaną zgłoszone i wykryte przez system obsługi błędów Magento, w którym użytkownik końcowy wyświetla ekran raportu o błędach, otrzymasz powiadomienie e-mailem.
Zarejestrowane wyjątki
Jeśli chcesz także otrzymywać powiadomienia e-mail o wyjątkach, które nie są zgłaszane, ale są rejestrowane, musisz przejść nieco dalej.
Najpierw zastąp klasę zapisującą dziennik rdzenia .
Gdy to zrobisz, po prostu wpisz kod, aby zrobić sobie wiadomość e-mail po zarejestrowaniu wyjątku. Pamiętaj, że musisz zapisać nazwę pliku dziennika od wewnątrz __construct()
, aby mieć do niej dostęp z tej _write()
metody.
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
}
}