यह आसानी से सुलभ नहीं लगता था क्योंकि मुझे लगा कि यह मेरे द्वारा किए गए कुछ खोज से होना चाहिए, इसलिए मैं भविष्य के संदर्भ के लिए एक प्रश्न / उत्तर पोस्ट कर रहा हूं।
अपवाद फेंको
आप त्रुटियों / local.xml का उपयोग करके फेंके गए अपवादों के लिए ईमेल सूचनाएं सक्षम कर सकते हैं। आप अपने errors/local.xml.template
'एरर / लोकल / एक्सएमएल' को कॉपी कर सकते हैं और ईमेल एड्रेस और सब्जेक्ट लाइन को ड्रॉप कर सकते हैं जिसे आप उपयोग करना चाहते हैं।
<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>
फिर, यदि कोई अपवाद मैग्नेटो की त्रुटि हैंडलिंग प्रणाली द्वारा फेंका और पकड़ा जाता है, जहां एक त्रुटि रिपोर्ट स्क्रीन अंतिम उपयोगकर्ता को दिखाई देती है, तो आपको एक ईमेल सूचना मिलेगी।
अपवाद लॉग करें
यदि आप अपवादों के लिए ईमेल सूचनाएं प्राप्त करना चाहते हैं, जिन्हें फेंका नहीं गया है, बल्कि लॉग इन किया गया है, तो आपको हुड के नीचे थोड़ा और आगे बढ़ना होगा।
सबसे पहले, कोर लॉग लेखक वर्ग को ओवरराइड करें ।
एक बार जब आप ऐसा कर लेते हैं, तो अपवाद लॉग होने के बाद अपने आप को ईमेल शूट करने के लिए कोड में छोड़ दें। याद रखें कि विधि __construct()
से इसे एक्सेस करने के लिए आपको लॉग फ़ाइल नाम को भीतर से सहेजना होगा _write()
।
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
}
}