البرمجة

استخدام Python RotatingFileHandler

تتعلق مشكلتك بإعدادات تسجيل الأخطاء في Python باستخدام الوحدة النمطية logging، وتحديدًا باستخدام RotatingFileHandler. الهدف هو تحقيق السجل المتداول الذي يقوم بتقسيم الملف إلى أجزاء صغيرة بحجم محدد وحفظها باسماء متتالية.

عند استخدام الكود الذي قدمته، تجد أنه ينشئ ملفين: my_log.log و example.log. الأخير يظهر عندما تقوم بتعليق خط الرمز logging.basicConfig(filename=”example.log”, level=logging.DEBUG).

الحل لهذه المشكلة يكمن في فهم كيفية تصميم تسجيل الأخطاء بشكل صحيح. يمكنك تحقيق هذا عن طريق تحديد الإعدادات المطلوبة مباشرةً على مستوى المسجل (logger)، بدلاً من استخدام logging.basicConfig.

فيما يلي الخطوات التي يمكن اتخاذها لحل المشكلة وتحقيق السجل المتداول المرجو:

  1. استخدام مسجل (logger) خاص بك بدلاً من الاعتماد على logging.basicConfig. هذا يتيح لك التحكم الكامل في تكوينات السجل.

  2. تحديد RotatingFileHandler على المسجل الخاص بك مع الإعدادات المناسبة لحجم الملف (maxBytes) وعدد النسخ المحفوظة (backupCount).

  3. تأكد من تعيين مستوى التسجيل (level) الذي تريده للمسجل.

فيما يلي الكود المعدل بناءً على التوجيهات السابقة:

python
import logging from logging.handlers import RotatingFileHandler logger = logging.getLogger('my_logger') logger.setLevel(logging.DEBUG) # تعيين مستوى التسجيل handler = RotatingFileHandler("my_log.log", maxBytes=2000, backupCount=10) logger.addHandler(handler) for _ in range(10000): logger.debug("Hello, world!")

باستخدام هذا الكود، يجب أن تحصل على السلوك المتوقع من خلال إنشاء ملفات my_log.log فقط، مع تقسيمها وفقًا لإعدادات RotatingFileHandler التي حددتها.

أتمنى أن تكون هذه الإرشادات مفيدة وتساعدك على تحقيق السجل المتداول بنجاح في تطبيقاتك.

المزيد من المعلومات

بالتأكيد، سأواصل المقال لتوضيح المفاهيم بشكل أكبر وتوجيه القراء إلى الاستفادة القصوى من استخدام RotatingFileHandler في Python.

فهم تفاصيل الكود المعدل:

دعنا نلقي نظرة أكبر على الكود المعدل لفهمه بشكل أفضل:

python
import logging from logging.handlers import RotatingFileHandler logger = logging.getLogger('my_logger') logger.setLevel(logging.DEBUG) # تعيين مستوى التسجيل handler = RotatingFileHandler("my_log.log", maxBytes=2000, backupCount=10) logger.addHandler(handler) for _ in range(10000): logger.debug("Hello, world!")
  • الخط الأول يستورد وحدة السجل (logging) و RotatingFileHandler التي نحتاجها لتحقيق السجل المتداول.
  • في الخطوة التالية، نقوم بتعريف مسجل جديد باسم “my_logger” باستخدام logging.getLogger().
  • ثم نقوم بتعيين مستوى التسجيل (level) إلى DEBUG، وهو يعني أننا سنقوم بتسجيل جميع الرسائل التي تكون من مستوى DEBUG أو أعلى.
  • بعد ذلك، نقوم بإنشاء معالج (handler) من نوع RotatingFileHandler ونقوم بتحديد اسم الملف وحجم كل ملف (maxBytes) وعدد النسخ المحفوظة (backupCount).
  • أخيرًا، نقوم بتضمين المعالج في المسجل الخاص بنا.

فوائد استخدام السجل المتداول:

  1. إدارة حجم الملفات: يمكن للسجل المتداول تجنب نمط “الملف الكبير” الذي ينتج عن تسجيل البيانات المستمرة في ملف واحد. بدلاً من ذلك، يتم تقسيم البيانات إلى ملفات صغيرة ومتعددة وفقًا لحجم محدد.

  2. توفير مساحة التخزين: من خلال تحديد حجم كل ملف وعدد النسخ المحفوظة، يمكن التحكم في كمية البيانات التي يتم الاحتفاظ بها بشكل فعال، وبالتالي توفير مساحة تخزين.

  3. سهولة البحث عن الأخطاء: يجعل السجل المتداول من السهل تحديد وتتبع الأخطاء، حيث يكون لديك ملفات متعددة يمكن البحث فيها بدلاً من ملف واحد ضخم.

استنتاج:

باستخدام السجل المتداول، يمكنك تحسين إدارة السجلات في تطبيقات Python الخاصة بك بشكل كبير. من خلال تحديد حجم الملفات وعدد النسخ المحفوظة، يمكنك تخصيص السجلات لتناسب احتياجات تطبيقك وضمان استمرارية تسجيل البيانات بشكل فعال ومنظم.

مقالات ذات صلة

زر الذهاب إلى الأعلى

هذا المحتوى محمي من النسخ لمشاركته يرجى استعمال أزرار المشاركة السريعة أو تسخ الرابط !!