2008-11-04 5 views
11

मैं ईमेल के माध्यम से त्रुटि लॉग प्राप्त करना चाहता हूं। उदाहरण के लिए, यदि Warning-level त्रुटि संदेश होना चाहिए, तो मैं इसके बारे में एक ईमेल प्राप्त करना चाहता हूं।कोडइग्निटर में, मेरे पास PHP त्रुटि संदेश कैसे मुझे ईमेल कर सकते हैं?

मैं कोडइग्निटर में काम कैसे कर सकता हूं?

उत्तर

16

आप इसे करने के लिए अपवाद कोर क्लास का विस्तार कर सकते हैं।

को सीआई के ईमेल वर्ग के संदर्भ को समायोजित करना पड़ सकता है, यह सुनिश्चित नहीं है कि आप इसे इस तरह की लाइब्रेरी से तुरंत चालू कर सकते हैं या नहीं। मैं स्वयं सीआई की ईमेल कक्षा का उपयोग नहीं करता, मैं स्विफ्ट मेलर लाइब्रेरी का उपयोग कर रहा हूं। लेकिन यह आपको सही रास्ते पर ले जाना चाहिए।

एक फ़ाइल MY_Exceptions.php करें और/आवेदन में यह जगह/पुस्तकालयों/(या/आवेदन/कोर में/सीआई 2 के लिए)

class MY_Exceptions extends CI_Exceptions { 

    function __construct() 
    { 
     parent::__construct(); 
    } 

    function log_exception($severity, $message, $filepath, $line) 

    { 
     if (ENVIRONMENT === 'production') { 
      $ci =& get_instance(); 

      $ci->load->library('email'); 
      $ci->email->from('[email protected]', 'Your Name'); 
      $ci->email->to('[email protected]'); 
      $ci->email->cc('[email protected]'); 
      $ci->email->bcc('[email protected]'); 
      $ci->email->subject('error'); 
      $ci->email->message('Severity: '.$severity.' --> '.$message. ' '.$filepath.' '.$line); 
      $ci->email->send(); 
     } 


     parent::log_exception($severity, $message, $filepath, $line); 
    } 

} 
+0

उपरोक्त में सुधार, अपवादों को बहुवचन करने की आवश्यकता है। MY_Exceptions.php वर्ग MY_Exceptions) CI_Exceptions { \t समारोह My_Exceptions ( \t { \t \t माता पिता :: CI_Exceptions() फैली हुई है; \t} ... – Jay

+0

(सीआई संस्करण 1.7.1 का प्रयोग करके) मैं एक ही कोशिश की, लेकिन ईमेल भेज नहीं है ... मैं में = $ t' '$ डेटा [" query_root_menu "] बदलकर इसका परीक्षण किया '$ डेटा ए [" query_root_menu "] = $ t' कृपया मेरी भी मदद करें, यह सीखने के लिए मेरे लिए यह बहुत जरूरी है –

0

ओह, एक और विकल्प है एक logrotation अनुप्रयोग है कि समर्थन करता है पाने के लिए ईमेलिंग digests। सुनिश्चित नहीं है कि आप किस प्लेटफ़ॉर्म पर हैं, लेकिन आप केवल error_log फ़ाइल पर कुछ मॉनीटर कर सकते हैं और आपको अपडेट भेज सकते हैं, शायद साफ नहीं हो सकते हैं और निश्चित रूप से आप error_log में केवल जानकारी तक ही सीमित रहेंगे। (error_log अपाचे है, सीआई में सिस्टम में एक/लॉग/फ़ोल्डर है, और आईआईएस में विंडोज इवेंट्स हैं)

3

समाधान से बाहर निकलने वाली एक चीज यह है कि आपको कोड इग्निटर सुपर ऑब्जेक्ट को ईमेल लोड करने और उपयोग करने के लिए पकड़ना है पुस्तकालय (या कोडइग्निटर अन्य पुस्तकालयों और मूल कार्यों में से कोई भी)।

$CI =& get_instance(); 

के बाद आप किया है कि आप $CI बजाय $this का उपयोग ईमेल पुस्तकालय लोड करने के लिए और मानकों के सभी निर्धारित किया है। अधिक जानकारी के लिए click here और के तहत अपनी लाइब्रेरी अनुभाग में कोडइग्निटर संसाधनों का उपयोग करना देखें।

0

मैं बस एक ओपन सोर्स प्रोजेक्ट जारी करने वाला हूं जो यह करता है, और भी बहुत कुछ। यह त्रुटियों को एकत्र करता है, उन्हें एक समस्या ट्रैकर को भेजता है, डुप्लीकेट का पता लगाता है, उन्हें मुद्दों और ईमेल कर्मचारियों में बदल देता है।

विवरण https://sourceforge.net/news/?group_id=317819&id=293422 पर हैं और संस्करण 0.1.7 का उल्लेख कुछ दिनों में किया गया है।

खुला स्रोत ट्रैकर, धन्यवाद

0

मैं विन्यास ईमेल मानकों के साथ इस समाधान को लागू करने के लिए एक open source github project की स्थापना http://elastik.sourceforge.net/

किसी भी प्रतिक्रिया का स्वागत करते है।

संबंधित मुद्दे