PHP ฟังก์ชัน Error และ Logging

PHP Error সমীক্ষা

Error এবং Logging ফাংশনসমূহ আপনাকে ত্রুটি এবং লগিং করার জন্য দেয়。

Error ফাংশনটি ব্যবহারকারীকে ত্রুটি হ্যান্ডলিং রুল নির্ধারণ করতে এবং ত্রুটি রেকর্ডিং পদ্ধতি পরিবর্তন করতে দেয়。

Logging ফাংশনটি ব্যবহারকারীকে অ্যাপ্লিকেশনটিকে লগ করতে এবং লগ মেসেজসমূহ ইমেইল, সিস্টেম লগ বা অন্য মেশিন-এ পাঠাতে দেয়。

error ফাংশনটি ত্রুটি হ্যান্ডলিং এবং লগিং করার জন্য ব্যবহৃত হয়。

error ফাংশনটি আমাদের নিজস্ব ত্রুটি হ্যান্ডলিং রুল নির্ধারণ করতে এবং ত্রুটি রেকর্ডিং পদ্ধতি পরিবর্তন করতে দেয়。

logging ফাংশনটি আমাদের বার্তা সরাসরি অন্য মেশিন, ইমেইল বা সিস্টেম লগ-এ পাঠাতে দেয়。

error reporting ফাংশনটি আমাদের ত্রুটির ধরন এবং স্তরকে নির্ধারণ করতে দেয়。

ইনস্টল

PHP error ফাংশন PHP কর্মকরীর একটি অংশ। এই ফাংশনসমূহকে ইনস্টল করতে প্রয়োজন নেই。

Runtime কনফিগারেশন

error ফাংশনের আচরণ php.ini-এর সেটিংস দ্বারা প্রভাবিত হয়。

Errors এবং logging কনফিগারেশন অপশনসমূহ নিম্নরূপ:

নাম ডিফল্ট মান বিবরণ পরিবর্তনযোগ্য পরিসীমা
error_reporting NULL ত্রুটি রিপোর্টিং স্তর সেট করুন (সংখ্যা বা নামকরণ সংকেত) PHP_INI_ALL
display_errors "1"

ত্রুটিকে স্ক্রিনের আউটপুট হিসাবে প্রদর্শন করা হবে কিংবা ব্যবহারকারীকে লুকানো হবে কি সেট করুন。

মন্তব্য:এই বৈশিষ্ট্যটি উৎপাদন সিস্টেমে ব্যবহার করা উচিত নয় (শুধুমাত্র উন্নয়নের জন্য সমর্থিত)

PHP_INI_ALL
display_startup_errors "0"

যদিও display_errors-কে চালু করা হয়, PHP-এর প্রারম্ভিক প্রক্রিয়ায় ত্রুটির তথ্য প্রদর্শিত হবে না。

মন্তব্য: পরীক্ষার জন্য ব্যবহার ছাড়াই display_startup_errors-কে বন্ধ করা পরামর্শ করা হয়。

PHP_INI_ALL
log_errors "0"

স্ক্রিপ্ট চালানোর ত্রুটির তথ্যকে সার্ভার ত্রুটি লগ বা error_log-এ রেকর্ড করা হবে কি না সেট করুন。

মন্তব্য: এটা সার্ভারের সংক্রান্ত বিশেষ কনফিগারেশন আইটিম।

মন্তব্য: উৎপাদন সিস্টেমে, এক্সট্রা পরীক্ষার জন্য ব্যবহার করতে পরামর্শ করা হয় না, এটা শুধুমাত্র উন্নয়নের জন্য সমর্থিত।

PHP_INI_ALL
log_errors_max_len "1024"

log_errors-এর মধ্যে সর্বোচ্চ বাইট সংখ্যা সেট করুন। এখানে ত্রুটির সূত্র সংক্রান্ত তথ্য যুক্ত হবে。

ডিফল্ট মান 1024, 0 হলে নিরবচ্ছিন্ন লম্বাইটির জন্য।

এই লম্বাইটি সেটিং রেকর্ড করা ত্রুটি, প্রদর্শিত ত্রুটি, এবং $php_errormsg-কেও সীমাবদ্ধ করে।

PHP_INI_ALL
ignore_repeated_errors "0"

পুনরাবৃত্ত ত্রুটির সংবাদকে রেকর্ড করা হবে কিনা নির্ধারণ করুন。

পুনরাবৃত্ত ত্রুটি একই ফাইলের একই কোড লাইনে উপস্থিত হতে হবে, যদি ignore_repeated_source সেট করা হয় না।

PHP_INI_ALL
ignore_repeated_source "0"

পুনরাবৃত্ত ত্রুটির সংবাদকে রেকর্ড করা হবে কিনা নির্ধারণ করুন। পুনরাবৃত্ত সংবাদকে অবমূল্যায়ন করার সময়, সংবাদের সোর্সকেও অবমূল্যায়ন করা হবে。

যদি এই সেটিংটি সক্রিয় হয়, তবে পুনরাবৃত্ত তথ্যটি এটি কোনও ভিন্ন ফাইল বা কোনও ভিন্ন সোর্স লাইন থেকে উৎপন্ন হয় তা না কেন রেকর্ড করা হবে না。

PHP_INI_ALL
report_memleaks "1" যদি এই পারামিটারটি On (ডিফল্ট) হিসাবে সেট করা হয়, তবে Zend মেমরি ম্যানেজার দ্বারা সংজ্ঞায়িত মেমরি লুসকার রিপোর্টটি দেখানো হবে。 PHP_INI_ALL
track_errors "0" যদি সক্রিয় হয়, তবে শেষতম ত্রুটি সবসময় $php_errormsg ভ্যানার মধ্যে থাকবে。 PHP_INI_ALL
html_errors "1" ত্রুটির সংবাদে HTML ট্যাগকে বন্ধ করুন。
  • PHP_INI_ALL
  • PHP_INI_SYSTEM in PHP <= 4.2.3.
xmlrpc_errors "0" যদি সক্রিয় হয়, তবে সাধারণ ত্রুটির রিপোর্টিং বন্ধ করে এবং ত্রুটির ফরম্যাটকে XML-RPC ত্রুটির সংবাদের ফরম্যাটে সেট করা হবে。 PHP_INI_SYSTEM
xmlrpc_error_number "0" XML-RPC faultCode এলিমেন্টের মান হিসাবে ব্যবহৃত হয়。 PHP_INI_ALL
docref_root "" (প্রথম প্রকাশিত হয়েছে PHP 4.3 থেকে) PHP_INI_ALL
docref_ext "" (প্রথম প্রকাশিত হয়েছে PHP 4.3.2 থেকে) PHP_INI_ALL
error_prepend_string NULL ত্রুটির সংবাদ পরে ফাইল করা হবে এমন স্ট্রিংকে নির্ধারণ করুন。 PHP_INI_ALL
error_append_string NULL ত্রুটির সংবাদ পরে ফাইল করা হবে এমন স্ট্রিংকে নির্ধারণ করুন。 PHP_INI_ALL
error_log NULL

স্ক্রিপ্টের ত্রুটি রেকর্ড করা হবে এমন ফাইলটি নির্ধারণ করুন। এই ফাইলটি ওয়েব সার্ভার ব্যবহারকারীর জন্য লিখার জন্য উপলব্ধ হতে হবে。

যদি syslog-এর বিশেষ মান ব্যবহার করা হয়, তবে ত্রুটির সংবাদকে সিস্টেম লগ রেকর্ডারে পাঠান。

PHP_INI_ALL

PHP ฟังก์ชัน Error และ Logging

ফাংশন বিবরণ
debug_backtrace() backtrace-কে তৈরি করুন。
debug_print_backtrace() backtrace-কে প্রিন্ট করুন。
error_get_last() সর্বশেষ ঘটা ত্রুটিকে ফিরিয়ে দিন。
error_log() ত্রুটির সংবাদ সার্ভার, ফাইল বা দূরস্থ লক্ষ্যকে পাঠান।
error_reporting() কোন ত্রুটি রিপোর্ট করা হবে তা নির্ধারণ করুন。
restore_error_handler() পূর্বের ত্রুটি হালচালনা ফিরিয়ে নিন。
restore_exception_handler() পূর্ববর্তী অসম্ভবতা হ্যান্ডলার পুনরুদ্ধার করা
set_error_handler() ব্যবহারকারী স্তরের ত্রুটি হ্যান্ডলার সংজ্ঞায়ন করা
set_exception_handler() ব্যবহারকারী স্তরের অসম্ভবতা হ্যান্ডলার সংজ্ঞায়ন করা
trigger_error() ব্যবহারকারী স্তরের ত্রুটি বার্তা তৈরি করা
user_error() trigger_error() ১মতো

PHP 5-র প্রতিষ্ঠিত ত্রুটি ও লগ স্থির

মান স্থির বিবরণ
1 E_ERROR রানটাইম ফ্যাটাল ত্রুটি।এটা সম্পূর্ণ রিপেয়ার করা যায় না।স্ক্রিপ্টটির বাধ্যতামূলক সমাপ্তি করে。
2 E_WARNING রানটাইম নন-ফ্যাটাল ত্রুটি।এটা স্ক্রিপ্টটির বাধ্যতামূলক সমাপ্তি করে না。
4 E_PARSE কম্পাইল সময়ের সাঙ্কেতিক ত্রুটি।পার্শ্বণীয় ত্রুটি শুধুমাত্র এনালাইজার দ্বারা উৎপন্ন হয়。
8 E_NOTICE রানটাইম নোটিস।স্ক্রিপ্টটির একটি ত্রুটির সম্ভাবনা রয়েছে, কিন্তু স্ক্রিপ্টটি সম্পূর্ণ ভাবে সক্রিয় থাকতেও পারে এমন নোটিস
16 E_CORE_ERROR PHP ইনিশিয়েশন স্টার্ট প্রক্রিয়ায় ঘটা মুক্ত ত্রুটি।এটা E_ERROR-র মতো, কিন্তু PHP ইঞ্জিন কোর দ্বারা উৎপন্ন হয়。
32 E_CORE_WARNING PHP ইনিশিয়েশন স্টার্ট প্রক্রিয়ায় ঘটা সতর্কতা (মুক্ত ত্রুটি)।E_WARNING-র মতো, কিন্তু PHP ইঞ্জিন কোর দ্বারা উৎপন্ন হয়。
64 E_COMPILE_ERROR কম্পাইল সময়ের মুক্ত ত্রুটি।E_ERROR-র মতো, কিন্তু জেন্ড স্ক্রিপ্ট ইঞ্জিন দ্বারা উৎপন্ন হয়。
128 E_COMPILE_WARNING কম্পাইল সময়ের সতর্কতা (মুক্ত ত্রুটি)।E_WARNING-র মতো, কিন্তু জেন্ড স্ক্রিপ্ট ইঞ্জিন দ্বারা উৎপন্ন হয়。
256 E_USER_ERROR ব্যবহারকারী দ্বারা উৎপন্ন ত্রুটি।E_ERROR-র মতো, কিন্তু ব্যবহারকারী এটা PHP ফাংশন trigger_error() ব্যবহার করে উৎপন্ন করেন。
512 E_USER_WARNING ব্যবহারকারী দ্বারা উৎপন্ন সতর্কতা।E_WARNING-র মতো, কিন্তু ব্যবহারকারী এটা PHP ফাংশন trigger_error() ব্যবহার করে উৎপন্ন করেন。
1024 E_USER_NOTICE ব্যবহারকারী দ্বারা উৎপন্ন নোটিফিকেশন তথ্য।E_NOTICE-র মতো, কিন্তু ব্যবহারকারী এটা PHP ফাংশন trigger_error() ব্যবহার করে উৎপন্ন করেন。
2048 E_STRICT PHP ১মতো কোডকে সংশোধন প্রস্তাব করে কাজ করা হয়েছে, যাতে কোডটি শুধুমাত্র শুভ পরিবর্তনযোগ্যতা রাখে。
4096 E_RECOVERABLE_ERROR ধর্মীয় ত্রুটির সংস্পর্কে।এটি একটি অত্যন্ত ঝুঁকিদারী ত্রুটির সংক্রান্ত নির্দেশ দেয়, কিন্তু PHP ইঞ্জিনটির অস্থায়ী অবস্থাতে পরিণত হয়নি যদি এই ত্রুটি ব্যবহারকারীর নিজস্ব হ্যান্ডলার দ্বারা অপরিগ্রহণ করা হয়না (set_error_handler() দেখুন),তবে এটি E_ERROR হয়ে ফেলে এবং স্ক্রিপ্ট বন্ধ হবে
8192 E_DEPRECATED রানটাইম নোটিফিকেশন।এটি সক্রিয় করার পর, ভবিষ্যতের সংস্করণে সঠিকভাবে কাজ করতে পারবে না এমন কোডের জন্য সতর্কতা দেওয়া হবে
16384 E_USER_DEPRECATED ব্যবহারকারী দ্বারা উৎপন্ন সতর্কতা তথ্য।এটি E_DEPRECATED-এর মতো, কিন্তু এটি ব্যবহারকারীকে নিজের কোডে PHP ফাংশন trigger_error() ব্যবহার করে উৎপন্ন করা হয়
32767 E_ALL E_STRICT সকল ত্রুটি এবং সতর্কতা সংক্রান্ত তথ্য