Điều này dường như không dễ tiếp cận như tôi nghĩ nó nên từ một số tìm kiếm tôi đã làm, vì vậy tôi đang đăng một câu hỏi / câu trả lời để tham khảo trong tương lai.
Ngoại lệ ném
Bạn có thể bật thông báo email cho các trường hợp ngoại lệ được ném bằng cách sử dụng lỗi / local.xml. Bạn có thể sao chép của bạn errors/local.xml.template
vào `lỗi / local.xml 'và thả vào địa chỉ email và dòng chủ đề mà bạn muốn sử dụng.
<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>
Sau đó, nếu bất kỳ trường hợp ngoại lệ nào được ném và bắt bởi hệ thống xử lý lỗi của Magento, trong đó màn hình báo cáo lỗi được hiển thị cho người dùng cuối, bạn sẽ nhận được thông báo qua email.
Ngoại lệ được ghi
Nếu bạn cũng muốn nhận thông báo qua email về các trường hợp ngoại lệ không được ném mà thay vào đó là ghi nhật ký, bạn sẽ cần phải đi xa hơn một chút dưới mui xe.
Đầu tiên, ghi đè lớp trình ghi nhật ký lõi .
Khi bạn đã thực hiện điều đó, chỉ cần nhập mã để tự gửi email sau khi ngoại lệ được ghi lại. Hãy nhớ rằng bạn cần lưu tên tệp nhật ký từ bên __construct()
trong để có quyền truy cập vào nó từ _write()
phương thức.
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
}
}