जवाबों:
निम्नलिखित कोड का उपयोग करें:
ini_set("log_errors", 1);
ini_set("error_log", "/tmp/php-error.log");
error_log( "Hello, errors!" );
फिर फ़ाइल देखें:
tail -f /tmp/php-error.log
या 2008 से इस ब्लॉग प्रविष्टिphp.ini
में वर्णित के रूप में अद्यतन करें ।
php_flag log_errors on php_value error_log /home/path/public_html/domain/PHP_errors.log
। देखें perishablepress.com/...
tmp/php-error.log
जिसमें से आप कभी भी इच्छा रखते हैं?
देख
error_log
- कहीं एक त्रुटि संदेश भेजेंउदाहरण
error_log("You messed up!", 3, "/var/tmp/my-errors.log");
जब भी कोई त्रुटि या चेतावनी या आपको लॉग इन करने की आवश्यकता होती है, तो आप इस फ़ंक्शन को कॉल करने के लिए अपने स्वयं के त्रुटि हैंडलर्स के साथ त्रुटि हैंडलिंग को अनुकूलित कर सकते हैं । अतिरिक्त जानकारी के लिए, कृपया PHP मैनुअल में अध्याय एरर हैंडलिंग को देखें
बस अपनी पीएचपी / इंडेक्स फाइल के शीर्ष पर ये कोड डालें:
error_reporting(E_ALL); // Error/Exception engine, always use E_ALL
ini_set('ignore_repeated_errors', TRUE); // always use TRUE
ini_set('display_errors', FALSE); // Error/Exception display, use FALSE only in production environment or real server. Use TRUE in development environment
ini_set('log_errors', TRUE); // Error/Exception file logging engine.
ini_set('error_log', 'your/path/to/errors.log'); // Logging file path
display_errors
कभी भी लाइव प्रोडक्शन सर्वर पर चालू नहीं होना चाहिए - यह निर्देश विशेष रूप से उपयोगकर्ता के लिए आउटपुट के लिए है, और लॉगिंग पर कोई प्रभाव नहीं है। php.net/manual/en/…
इस कोड को .htaccess ( php.ini / ini_set फ़ंक्शन के विकल्प के रूप में ) जोड़ें:
<IfModule mod_php5.c>
php_flag log_errors on
php_value error_log ./path_to_MY_PHP_ERRORS.log
# php_flag display_errors on
</IfModule>
* जैसा कि टिप्पणी की गई है: यह अपाचे- टाइप सर्वरों के लिए है, न कि नग्नेक्स या अन्य के लिए।
यह मेरा व्यक्तिगत लघु कार्य है
# logging
/*
[2017-03-20 3:35:43] [INFO] [file.php] Here we are
[2017-03-20 3:35:43] [ERROR] [file.php] Not good
[2017-03-20 3:35:43] [DEBUG] [file.php] Regex empty
mylog ('hallo') -> INFO
mylog ('fail', 'e') -> ERROR
mylog ('next', 'd') -> DEBUG
mylog ('next', 'd', 'debug.log') -> DEBUG file debug.log
*/
function mylog($text, $level='i', $file='logs') {
switch (strtolower($level)) {
case 'e':
case 'error':
$level='ERROR';
break;
case 'i':
case 'info':
$level='INFO';
break;
case 'd':
case 'debug':
$level='DEBUG';
break;
default:
$level='INFO';
}
error_log(date("[Y-m-d H:i:s]")."\t[".$level."]\t[".basename(__FILE__)."]\t".$text."\n", 3, $file);
}
log_errors
Php.ini में कॉन्फ़िगरेशन विकल्प पर एक नज़र डालें । यह वही करना चाहता है जो आप करना चाहते हैं। मुझे लगता है कि आप error_log
अपनी लॉगिंग फ़ाइल को भी सेट करने के लिए विकल्प का उपयोग कर सकते हैं ।
जब log_errors
निर्देश सेट किया जाता है On
, तो PHP द्वारा रिपोर्ट की गई कोई भी त्रुटि सर्वर लॉग या फ़ाइल के साथ निर्दिष्ट की जाएगी error_log
। आप इन विकल्पों को ini_set
भी सेट कर सकते हैं, यदि आपको आवश्यकता है।
(कृपया ध्यान दें कि display_errors
अगर यह विकल्प सक्षम है तो php.ini में अक्षम होना चाहिए)
display_errors
यदि आप सक्षम करते हैं तो विकलांग क्यों होना चाहिए log_errors
? मेरी राय में कोई मतलब नहीं है। :)
ini_set
केवल उस कोड को निष्पादित करने पर काम करता है। उस कोड के लिए उपयोगी नहीं है जिसमें पार्स त्रुटियां हैं क्योंकि कोड निष्पादित होने से पहले त्रुटि होगी । इसके बजाय उन परिवर्तनों को php.ini में लिखें।