تسجيل الأخطاء هو جانب أساسي من تطوير وصيانة أي تطبيق ويب. في هذا الدليل، سنغطي كيفية إنشاء وإدارة سجلات الأخطاء في تطبيق PHP CodeIgniter. سيتضمن ذلك تكوين نظام تسجيل الأخطاء المدمج في CodeIgniter، وإعداد معالجة الأخطاء المخصصة، واستخدام مكتبات تسجيل الأخطاء الخارجية.
1. مقدمة في تسجيل الأخطاء في CodeIgniter
يساعد تسجيل الأخطاء المطورين على تتبع وتشخيص المشكلات داخل تطبيقاتهم عن طريق تسجيل الأخطاء والتحذيرات والأحداث المهمة الأخرى. يأتي CodeIgniter مع فئة تسجيل أخطاء مدمجة سهلة التكوين والاستخدام.
2. تكوين نظام تسجيل الأخطاء المدمج في CodeIgniter
يوفر نظام تسجيل الأخطاء المدمج في CodeIgniter طريقة بسيطة وفعالة لتسجيل الرسائل. إليك كيفية إعدادها:
الخطوة 1: تعيين عتبة السجل
تحدد عتبة السجل مستويات الرسائل التي سيتم تسجيلها. افتح ملف application/config/config.php
وقم بتعيين تكوين log_threshold
.
$config['log_threshold'] = 1;
مستويات عتبة السجل هي:
- 0: تعطيل التسجيل، إيقاف تشغيل تسجيل الأخطاء
- 1: رسائل الخطأ (بما في ذلك أخطاء PHP)
- 2: رسائل التصحيح
- 3: رسائل المعلومات
- 4: جميع الرسائل
الخطوة 2: تعيين مسار السجل
يتم افتراضيًا تخزين سجلات CodeIgniter في دليل application/logs/
. إذا كنت ترغب في تغيير دليل السجل، قم بتعيين تكوين log_path
في application/config/config.php
.
$config['log_path'] = '/path/to/your/logs/';
تأكد من أن الدليل قابل للكتابة بواسطة خادم الويب.
الخطوة 3: تعيين أذونات ملف السجل
قم بتعيين أذونات ملف السجل باستخدام تكوين log_file_permissions
في application/config/config.php
.
$config['log_file_permissions'] = 0644;
الخطوة 4: تعيين تنسيق التاريخ للسجلات
يمكنك تخصيص تنسيق التاريخ المستخدم في سجلات الأخطاء باستخدام تكوين log_date_format
في application/config/config.php
.
$config['log_date_format'] = 'Y-m-d H:i:s';
الخطوة 5: تسجيل الرسائل
استخدم وظيفة log_message
لتسجيل الرسائل في تطبيقك.
log_message('error', 'This is an error message.'); log_message('debug', 'This is a debug message.'); log_message('info', 'This is an informational message.');
3. إنشاء سجلات أخطاء مخصصة
بالإضافة إلى نظام تسجيل الأخطاء المدمج في CodeIgniter، يمكنك إنشاء سجلات أخطاء مخصصة لالتقاط أحداث أو أخطاء محددة.
الخطوة 1: وظيفة تسجيل مخصصة
قم بإنشاء وظيفة تسجيل مخصصة في مساعد أو مكتبة.
if (!function_exists('custom_log')) { function custom_log($level, $message) { $CI =& get_instance(); $CI->load->library('log'); $CI->log->write_log($level, $message); } }
الخطوة 2: استخدام وظيفة التسجيل المخصصة
استخدم وظيفة التسجيل المخصصة في وحدات التحكم أو النماذج أو العروض.
custom_log('error', 'This is a custom error message.');
4. استخدام مكتبات تسجيل الأخطاء الخارجية
للحصول على تسجيل أخطاء أكثر تقدمًا، يمكنك استخدام مكتبات خارجية مثل Monolog. إليك كيفية دمج Monolog مع CodeIgniter.
الخطوة 1: تثبيت Monolog عبر Composer
قم بتشغيل الأمر التالي لتثبيت Monolog باستخدام Composer.
composer require monolog/monolog
الخطوة 2: تكوين Monolog في CodeIgniter
قم بإنشاء مكتبة جديدة لتكامل Monolog. على سبيل المثال، application/libraries/Monolog.php
.
use Monolog\Logger; use Monolog\Handler\StreamHandler; class Monolog { private $logger; public function __construct() { $this->logger = new Logger('name'); $this->logger->pushHandler(new StreamHandler(APPPATH . 'logs/monolog.log', Logger::DEBUG)); } public function log($level, $message) { $this->logger->log($level, $message); } }
الخطوة 3: استخدام Monolog
قم بتحميل واستخدام Monolog في وحدات التحكم الخاصة بك.
$this->load->library('monolog'); $this->monolog->log('error', 'This is a Monolog error message.');
5. مراقبة وإدارة السجلات
لإدارة سجلاتك بشكل فعال، ضع في اعتبارك ما يلي:
استخدام Logrotate
استخدم logrotate
لإدارة ملفات السجل ومنعها من النمو بشكل كبير.
قم بإنشاء ملف تكوين لـ logrotate
(على سبيل المثال، /etc/logrotate.d/codeigniter
).
/path/to/your/logs/*.log { daily rotate 7 compress missingok notifempty create 0644 www-data www-data sharedscripts postrotate /usr/bin/systemctl reload apache2 > /dev/null 2>/dev/null || true endscript }
إعداد مراقبة السجلات
استخدم أدوات مثل Logwatch أو خدمة تسجيل (على سبيل المثال، Loggly، Papertrail) لمراقبة وتحليل سجلاتك.
أفضل الممارسات لتسجيل الأخطاء
- مستويات السجل: استخدم مستويات السجل المناسبة (
error
،debug
،info
، إلخ) لتصنيف سجلاتك. - تدوير السجلات: قم بتدوير السجلات بانتظام لإدارة أحجام الملفات.
- المعلومات الحساسة: تجنب تسجيل المعلومات الحساسة مثل كلمات المرور أو البيانات الشخصية.
- تنسيق متسق: حافظ على تنسيق متسق لرسائل السجل لتسهيل تحليلها.
- معالجة الأخطاء: قم بتنفيذ معالجة الأخطاء بشكل صحيح وتسجيلها في تطبيقك لالتقاط المشكلات غير المتوقعة.
الخلاصة
يعد إعداد تسجيل الأخطاء في CodeIgniter أمرًا ضروريًا للحفاظ على تطبيقك وتشخيصه. من خلال تكوين نظام تسجيل الأخطاء المدمج في CodeIgniter، وإنشاء سجلات مخصصة، ودمج مكتبات خارجية مثل Monolog، يمكنك التقاط وإدارة السجلات بشكل فعال. سيساعدك اتباع أفضل الممارسات لتسجيل الأخطاء في الحفاظ على تطبيق موثوق وقوي.