CodeIgniter (PHP) में लॉग इन करने में त्रुटि कैसे करें


92

मैं PHP CodeIgniter में लॉगिंग में त्रुटि चाहता हूँ। मैं त्रुटि लॉगिंग को कैसे सक्षम करूं?

मेरे कुछ सवाल है:

  1. त्रुटि लॉग करने के लिए सभी चरण क्या हैं?
  2. एक त्रुटि लॉग फ़ाइल कैसे बनाई जाती है?
  3. लॉग फ़ाइल में त्रुटि संदेश को कैसे पुश करें (जब भी कोई त्रुटि होती है)?
  4. आप ईमेल पते पर उस त्रुटि को ई-मेल कैसे करते हैं?

जवाबों:


180

CodeIgniter में कुछ त्रुटि लॉगिंग कार्य हैं।

  • अपने / अनुप्रयोग / लॉग फ़ोल्डर योग्य बनाते हैं
  • में /application/config/config.php सेट
    $config['log_threshold'] = 1;
    एक उच्च संख्या का उपयोग करें या, कितना विस्तार आप अपने लॉग में चाहते हैं पर निर्भर करता है
  • उपयोग log_message('error', 'Some variable did not contain a value.');
  • एक ईमेल भेजने के लिए आपको कोर CI_Exception वर्ग विधि का विस्तार करना होगा log_exceptions()। आप स्वयं इस करते हैं या उपयोग कर सकते हैं इसयहाँ कोर का विस्तार करने के बारे में अधिक जानकारी

Http://www.codeigniter.com/user_guide/general/errors.html देखें



क्या इसके लिए कोई सुरक्षा निहितार्थ हैं?
आकिल फर्नांडिस

यह एक php फाइल के डेटा को डंप करता है जिसका फ़ाइल नाम प्रारूप में है: log- [Ymd H: i: s] या जो कुछ भी मान आपके log फाइल पर परिभाषित log_date_format कुंजी कॉन्फ़िगरेशन पर सेट है। जब तक आपको संवेदनशील डेटा लॉग / डंप करने के लिए नहीं मिलता है, तब तक यह बहुत सुरक्षित होना चाहिए। यह फ़ाइल डिफ़ॉल्ट रूप से index.html पृष्ठ के सापेक्ष है, इसलिए स्पष्ट रूप से उत्पन्न php फाइलें सार्वजनिक रूप से सुलभ नहीं होंगी- लेकिन आप कभी नहीं जान पाएंगे। यदि आप डिफ़ॉल्ट एप्लिकेशन / लॉग निर्देशिका को बदलते हैं तो यह सभी सावधानियां रखना सुनिश्चित करें।
विंसेंट एडवर्ड गडरिया बिनुआ

7
अपने / एप्लिकेशन / लॉग फ़ोल्डर को उपयुक्त बनाएं <<< जिसने मेरी मदद की
user1312695

जब मैंने "$ config ['log_threshold'] = 1;" सेट किया, तो मुझे मेरे / एप्लिकेशन / लॉग्स फ़ोल्डर में कोई लॉग नहीं मिला। हालाँकि, जब मैंने "$ config ['log_threshold'] = 3" सेट किया, तो एक लॉग फ़ाइल दिखाई दी। उम्मीद है की यह मदद करेगा। धन्यवाद! शांति।
मसरपमुबायह

25

सर्वर के त्रुटि लॉग में बस एक लाइन डालने के लिए, PHP के error_log () फ़ंक्शन का उपयोग करें। हालाँकि, वह विधि ई-मेल नहीं भेजेगी।

सबसे पहले, एक त्रुटि को ट्रिगर करने के लिए:

trigger_error("Error message here", E_USER_ERROR);

डिफ़ॉल्ट रूप से, यह सर्वर की त्रुटि लॉग फ़ाइल में जाएगा। Apache के लिए ErrorLog निर्देश देखें । अपनी लॉग फ़ाइल सेट करने के लिए:

ini_set('error_log', 'path/to/log/file');

ध्यान दें कि आपके द्वारा चुनी गई लॉग फ़ाइल पहले से ही मौजूद होनी चाहिए और सर्वर प्रक्रिया द्वारा लिखने योग्य होनी चाहिए। फ़ाइल को लिखने योग्य बनाने का सबसे सरल तरीका सर्वर उपयोगकर्ता को फ़ाइल का स्वामी बनाना है। (आपके OS वितरण के आधार पर सर्वर उपयोगकर्ता कोई भी नहीं हो सकता है, _www, Apache, या कुछ और।)

त्रुटि को ई-मेल करने के लिए, आपको एक कस्टम त्रुटि हैंडलर सेट करना होगा:

function mail_error($errno, $errstr, $errfile, $errline) {
  $message = "[Error $errno] $errstr - Error on line $errline in file $errfile";
  error_log($message); // writes the error to the log file
  mail('you@yourdomain.com', 'I have an error', $message);
}
set_error_handler('mail_error', E_ALL^E_NOTICE);

कृपया अधिक जानकारी के लिए प्रासंगिक PHP प्रलेखन देखें ।


3

यह भी सुनिश्चित करें कि आपने किसी कॉनफ़िगर फ़ाइल में इच्छित संदेशों के प्रकार को लॉगइन करने की अनुमति दी है।

अर्थात $config['log_threshold'] = [log_level ranges 0-4];


1

प्रश्न 4 भाग के बारे में अधिक जानकारी के लिए आप ईमेल पते पर उस त्रुटि को ई-मेल कैसे करते हैं? Error_log फ़ंक्शन का ईमेल गंतव्य भी है। http://php.net/manual/en/function.error-log.php

आगा, यहां मुझे एक उदाहरण मिला जो एक उपयोग दिखाता है। त्रुटि_लॉग () का उपयोग करके ईमेल के माध्यम से त्रुटि संदेश भेजें

error_log($this->_errorMsg, 1, ADMIN_MAIL, "Content-Type: text/html; charset=utf8\r\nFrom: ".MAIL_ERR_FROM."\r\nTo: ".ADMIN_MAIL);

0
In config.php add or edit the following lines to this:
------------------------------------------------------
$config['log_threshold'] = 4; // (1/2/3)
$config['log_path'] = '/home/path/to/application/logs/';

Run this command in the terminal:
----------------------------------
sudo chmod -R 777 /home/path/to/application/logs/
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.