উত্তর:
নিম্নলিখিত কোড ব্যবহার করুন:
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");
আপনি যখনই কোনও ত্রুটি বা সতর্কতা বা আপনার যা কিছু প্রয়োজন লগতে ঘটে তখন আপনার জন্য এই ক্রিয়াকলাপটি কল করতে আপনি নিজের ত্রুটি হ্যান্ডলারের সাহায্যে ত্রুটি হ্যান্ডলিংকে কাস্টমাইজ করতে পারেন । অতিরিক্ত তথ্যের জন্য, দয়া করে পিএইচপি ম্যানুয়ালটিতে অধ্যায় ত্রুটি পরিচালনা করার বিষয়টি দেখুন
এই কোডগুলি কেবল আপনার পিএইচপি / সূচক ফাইলের শীর্ষে রাখুন:
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
, পিএইচপি দ্বারা উল্লিখিত কোনও ত্রুটি সার্ভার লগ বা নির্দিষ্ট ফাইলের সাথে লগ করা হত error_log
। আপনার ini_set
যদি প্রয়োজন হয় তবে আপনি এই বিকল্পগুলিও খুব সহজেই সেট করতে পারেন ।
(দয়া করে নোট করুন যে display_errors
এই বিকল্পটি সক্ষম থাকলে php.ini এ অক্ষম করা উচিত)
display_errors
আপনি সক্ষম করলে কেন অক্ষম করা উচিত log_errors
? আমার মতে অর্থবোধ করে না। :)
ini_set
কেবলমাত্র সেই কোডটি কার্যকর করা হলে কাজ করে। কোড বিশিষ্ট ত্রুটিযুক্ত কোডের জন্য কার্যকর নয় কারণ কোডটি কার্যকর করার আগে ত্রুটিটি হবে । পরিবর্তে এই পরিবর্তনগুলি php.ini এ লিখুন।