تسجيل الأخطاء Logging Errors
السلام عليكم ورحمة الله
اود اليوم ان اطرح اليكم هذا الموضوع ولعله يجد كل القبول والاستحسان منكم .
الدرس يتحدث عن طرق تتبع وتسجيل الاخطاء البرمجية في لغة الـPHP
يمكننا بوضع الاستراتجيات الناجحة لتسجيل الاخطاء دون التدخل مع واجهة المستخدم، بحيث يتمكن المبرمج أو مدير الموقع من تحليل هذه الاخطاء ومعالجتها ،،، توفر PHP الدالة error_log التي تسمح لنا بتسجيل الأخطاء وتعين هدف ترسل اليه هذه الاخطاء ،،،
دالة error_log
بنيتها :
كود PHP:
error_log ( string message [, int message_type [, string destination [, string extra_headers]]] )
واليكم شرح مختصر لاهم المتغيرات :-
message
رسالة الخطا التي سوف يتم تسجيلها وارسالها
message_type
نوع الرسالة أثناء تسجيل الخطا ،،، والتي من خلالها يمكنك توجيه أو ارسال رسالة الخطا الى ما تريد وهنالك أربعةانواع وكل نوع يرمز له بالرقم من 0 الى 3 ،،، وسوف نتعرض لشرح هذه الانواع من خلال هذه كتمرين عملي لهذا الموضوع
كود PHP:
<?PHP
/* Log_error.php
- Code Devloped By HaMaDa4eVeR
- Let's start
*/
error_reporting(0)
if(!fopen("largfile.txt","r"))
/* The Error Message logged to the webserver's error log
سوف يتم ارسال رسالة الخطا الى سجل الخطا في السيرفر الذي يتم تنفيذ هذا البرنامج عليه
*/
{
error_log("File Could'nt be opened",0);
/* The Error Message is Logged As An e-mail
رسالة الخطا سوف ترسل كرسالة الى البريد الالكتروني
*/
error_log("File Could'nt be opened",1,"em@il.com");
/* Send To Remot Host
سوف ترسل الرسالة الى سيرفر تاني تقم انت بتحديد اسم النطاق الذي تريد تسجيل الخطا فيه
*/
error_log("File Could'nt be opened",2,"debug.domain.com");
/* Send To File
يتم الارسال الى ملف
*/
error_log("File Could'nt be opened",3"/full/path/php_errors.php");
}
?>
لا يحتاج التقرير عن الخطأ عملياً الى ان يستند الى هذه الانواع الاربعة فقط ،،، فقد يكون أحياناً من المفيد أكثر إيصال محتوىرسالة الخطا الى مسؤولي صيانة موقع الويب ،، الامر الذي نوضحه في الكود التالي :-
كود PHP:
<?php
/* Route_Error.php
- Error Content Message
- Devloped By HaMaDa4eVeR
*/
function logcontent($msg)
{
/* Function Body
عمل الدالة
*/
error_log($msg,0);
error_log($msg,1,"error@domain.com","Replay-To:error@domain.com");
// End Of Function
}
?>
يتم استدعاء متغيرات التقرير عن الخطا عندما يكن الخطا الناتج متعلقا بالمحتوى البرمجي
وآسفين للتقصير
واتمنى ان اكن قد افدتكم بشي