الانتقال إلى المحتوى الرئيسي

كيفية حفظ سجل لمتغير بيثون: أفضل الطرق

يعد التسجيل أداة لا غنى عنها لتصحيح الأخطاء وتحليل تشغيل البرنامج. في عملية تطوير التطبيق ، غالبا ما يصبح من الضروري حفظ سجل جميع الأحداث إلى متغير للتحليل اللاحق. في هذه المقالة ، سنلقي نظرة على بعض من أفضل الطرق لحفظ سجل إلى متغير عند استخدام بايثون.

الطريقة الأولى هي استخدام وحدة التسجيل. توفر وحدة التسجيل طريقة سهلة لإنشاء السجلات وحفظها. أولا ، تحتاج إلى إنشاء كائن مسجل باستخدام طريقة جيتلوغر (). بعد ذلك ، يمكنك تحديد مستوى التسجيل (تصحيح ، معلومات ، تحذير ، خطأ ، حرج) باستخدام طريقة سيتليفيل (). لحفظ السجلات إلى متغير ، تحتاج إلى إنشاء مثيل من فئة سترينجيو من وحدة إو ، والتي سيتم استخدامها كمخزن مؤقت لكتابة السجلات.

الطريقة الثانية هي استخدام وحدة سيس. باستخدام وحدة سيس ، يمكنك إعادة توجيه الإخراج القياسي (ستدوت) إلى متغير. تحتاج إلى استيراد وحدة سيس واستخدام سيس.وظيفة ستدوت لإعادة توجيه الإخراج إلى كائن سترينجيو. بعد ذلك ، سيتم حفظ جميع الأسطر التي يتم عرضها عادة على الشاشة في متغير.

الطريقة الثالثة هي استخدام وحدة كونتيكستليب. توفر وحدة كونتيكستليب الديكور ومديري السياق التي تبسط العمل مع أنواع معينة من الموارد. لحفظ السجلات إلى متغير ، تحتاج إلى استخدام الديكور ريديركت_ستدوت من وحدة كونتيكستليب. يقوم مصمم الديكور بإعادة التوجيه بإعادة توجيه الإخراج القياسي (ستدوت) إلى كائن يشبه الملف يمكن استخدامه لحفظ السجلات في متغير.

  1. كيفية حفظ سجل إلى متغير بايثون
  2. الطرق الشائعة لحفظ السجل إلى متغير
  3. 1. باستخدام مكتبة التسجيل القياسية
  4. 2. باستخدام إو.سترينجيو وحدة
  5. 3. باستخدام الديكور لاعتراض ستدوت
  6. 4. استخدام مكتبات الجهات الخارجية
  7. مزايا استخدام متغير لتخزين السجل
  8. كيفية حفظ سجل إلى متغير باستخدام أدوات بايثون القياسية
  9. طرق متقدمة لحفظ السجل إلى متغير باستخدام مكتبات الجهات الخارجية
  10. 1. تسجيل
  11. 2. لوغورو
  12. 3. كولوردلوغس
  13. سؤال وجواب
  14. كيف يمكنني حفظ سجل لمتغير في بيثون?
  15. أي وحدة يجب أن أستخدمها لحفظ السجل إلى متغير?
  16. ما يجب القيام به لحفظ السجل إلى متغير?
  17. كيف يمكنني تكوين تنسيق السجل المحفوظ عند استخدام وحدة التسجيل في بايثون?
  18. كيف يمكنني الحصول على سجل محفوظ من متغير?

كيفية حفظ سجل إلى متغير بايثون

عند العمل مع التطبيقات ، من المهم أن تكون قادرا على حفظ السجلات لتتبع عملية البرنامج والعثور على الأخطاء المحتملة. في بايثون ، هناك عدة طرق لحفظ سجل إلى متغير ، والتي سننظر فيها أدناه.

1. باستخدام وحدة التسجيل

وحدة تسجيل في بيثون يوفر أداة تسجيل مرنة وقوية. لحفظ السجل إلى متغير ، يمكنك استخدام التعليمات البرمجية التالية:

استيراد تسجيل

سجل = تسجيل.جيتلوغر()

سجل. سيتليفيل(logging.INFO)

سجل _ التقاط _ سلسلة = إو.سترينجيو()

الفصل = تسجيل.ستريمهاندلر (لوغ_كابتور_سلسلة)

سيتيليفيل(logging.INFO )

سجل.أدهاندلر (الفصل)

# مثال على إدخال السجل

log.info ("رسالة لحفظها في السجل")

# الحصول على السجل المحفوظ كسلسلة

محتوى السجل = سلسلة تسجيل الدخول.جيتفالو()

2. باستخدام إو.سترينجيو وحدة

الإعلام والتوعية.سترينجيو وحدة تسمح لك للعمل مع البيانات في الذاكرة كملف نصي. لحفظ السجل إلى متغير ، يمكنك استخدام التعليمات البرمجية التالية:

نظام الاستيراد

من إو استيراد سترينجيو

تسجيل الدخول = سترينجيو ()

سيس.ستدوت = لوغ_كابتور

# مثال على إدخال السجل

طباعة ("رسالة للحفظ في السجل")

# الحصول على السجل المحفوظ كسلسلة

محتويات السجل = التقاط السجل.جيتفالو()

3. باستخدام وظيفة مستقلة

يمكنك أيضا إنشاء وظيفة خاصة بك لتسجيل وحفظ السجل إلى متغير. على سبيل المثال:

سجل = []

مواطنه أضاف_سجل_رسالة (رسالة):

سجل.إلحاق (رسالة)

# مثال على إدخال السجل

إضافة رسالة ("رسالة للحفظ في السجل")

# الحصول على السجل المحفوظ في شكل قائمة

المحتوى = السجل

هذه ليست سوى بعض الطرق لحفظ السجل إلى متغير في بيثون. اعتمادا على احتياجاتك وتفضيلاتك ، يمكنك اختيار الطريقة المناسبة لمشروعك.

الطرق الشائعة لحفظ السجل إلى متغير

عند العمل مع السجلات ، من المهم أن تكون قادرا على حفظها في متغير لمزيد من التحليل أو المعالجة. هناك العديد من الطرق الشائعة في بايثون التي تسمح لك بحفظ السجلات إلى متغير.

1. باستخدام مكتبة التسجيل القياسية

توفر مكتبة التسجيل في بايثون أدوات مرنة وقوية للعمل مع السجلات. يمكن استخدام فئات التسجيل لحفظ السجلات إلى متغير.ستريمهاندلر وتسجيل.سترينجيو ، والتي تسمح لك لإعادة توجيه إخراج السجلات إلى مخزن مؤقت سلسلة.

استيراد تسجيل

استيراد إو

# خلق

مسجل كائن مسجل = تسجيل.جيتلوغر()

مسجل.سيتليفيل(تسجيل.التصحيح)

# Создание объекта потока вывода в переменную

log_stream = io.StringIO()

handler = logging.StreamHandler(log_stream)

logger.addHandler(handler)

# Печать логов

logger.info("This is an info message")

logger.warning("This is a warning message")

# Получение содержимого лога из переменной

log_content = log_stream.getvalue()

print(log_content)

2. Использование модуля io.StringIO

توفر وحدة إو فئات مريحة للعمل مع تدفقات البيانات. فئة سترينجيو يسمح لك لإنشاء مخزن مؤقت سلسلة التي يمكن كتابة البيانات. لكتابة السجلات إلى متغير ، يمكنك استخدام كائن من فئة سترينجيو وطرق الكتابة مثل الكتابة() أو الكتابة().

استيراد إو

# إنشاء كائن سلسلة عازلة

لوغ_بوفر = إو.سترينجيو()

# كتابة السجلات إلى المتغير

تسجيل الدخول.اكتب ("هذه رسالة سجل

")

تسجيل الدخول.اكتب ("هذه رسالة سجل أخرى

")

# الحصول على محتويات السجل من المتغير

محتوى السجل = سجل الدخول.جيتفالو()

طباعة (محتوى السجل)

3. باستخدام الديكور لاعتراض ستدوت

الديكور بيثون تسمح لك لتغيير سلوك وظيفة. يمكن استخدام الديكور لاعتراض وحفظ إخراج الوظائف إلى متغير. لحفظ السجلات إلى متغير ، يمكنك إنشاء ديكور يقوم بإعادة توجيه الإخراج إلى ملف أو مخزن مؤقت للسلسلة.

نظام الاستيراد

# ديكور لاعتراض الإخراج

من مواطنه القبض على (فونك):

ديف المجمع (*أرغس ، * * كوارغس):

# إنشاء كائن سلسلة عازلة

لوغ_بوفر = إو.سترينجيو()

# إعادة توجيه الإخراج إلى

متغير النظام.ستدوت = لوغ_بوفر

# تنفيذ الوظيفة

فونك (*أرجس ، * * كوارغس)

# استعادة الإخراج

سيس.ستدوت = سيس.__التداول__

# الحصول على محتويات السجل من المتغير

محتوى السجل = سجل الدخول.جيتفالو()

طباعة (محتوى السجل)

عودة المجمع

# باستخدام الديكور

<url>

ديف وظيفتي ():

طباعة ("هذه رسالة سجل")

# استدعاء وظيفة مع اعتراض الإخراج

من وظيفتي ()

4. استخدام مكتبات الجهات الخارجية

هناك أيضا مجموعة من مكتبات الجهات الخارجية للعمل مع السجلات ، والتي توفر ميزات إضافية لحفظ السجلات للمتغيرات. على سبيل المثال ، توفر مكتبة لوغورو لوغورو.مسجل.إضافة () ولوغورو.مسجل.طرق الصيد () ، والتي تسمح بإعادة توجيه السجلات إلى مخزن مؤقت للسلسلة.

من لوغورو استيراد المسجل

# إنشاء كائن سلسلة عازلة

تسجيل الدخول = مسجل._الأساسية.معالجات [0].بالوعة

# سجلات الطباعة

logger.info ("هذه رسالة معلومات")

مسجل.تحذير ("هذه رسالة تحذير")

# الحصول على محتويات السجل من المتغير

محتوى السجل = سجل الدخول.جيتفالو()

طباعة (محتوى السجل)

هذه ليست سوى بعض الطرق الشائعة لحفظ السجلات إلى متغير في بايثون. يعتمد اختيار الطريقة على تفضيلاتك ومتطلبات المشروع.

مزايا استخدام متغير لتخزين السجل

تخزين سجل في متغير في بيثون يمكن أن توفر العديد من المزايا الهامة:

  1. الراحة وسهولة القراءة:

    إن توفير القدرة على تخزين السجل كسلسلة في متغير يجعل من السهل عرض محتوياته وتحليلها. هذا يجعل الكود أكثر قابلية للقراءة ويجعل تصحيح الأخطاء أسهل إذا كنت بحاجة إلى التحقق من إدخالات السجل.

  2. المرونة:

    يتيح لك استخدام متغير لتخزين السجل تخصيص تنسيق إدخالات السجل بمرونة. إذا لزم الأمر ، يمكنك إضافة الطوابع الزمنية أو مستويات الأهمية أو البيانات الوصفية الأخرى إلى كل إدخال سجل ، مما يوفر معلومات إضافية لمزيد من التحليل.

  3. سهولة معالجة وحفظ السجل:

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

  4. حفظ الذاكرة:

    يمكن أن يكون تخزين السجل في متغير أكثر كفاءة من حيث استخدام الذاكرة ، حيث يتم تخزين جميع إدخالات السجل في كائن واحد ، بدلا من تخزين كل إدخال في واصفات أو كائنات ملفات منفصلة مختلفة.

  5. إمكانية مزيد من المعالجة:

    نظرا لأنه يتم تخزين السجل في متغير ، يمكن معالجته وتحليله بسهولة باستخدام وظائف ومكتبات بايثون المختلفة. يتيح لك ذلك إجراء عمليات مختلفة على السجل ، مثل التصفية أو التجميع أو استرجاع المعلومات.

كيفية حفظ سجل إلى متغير باستخدام أدوات بايثون القياسية

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

وحدة سترينجيو يوفر وسيلة مريحة لكتابة النص إلى الذاكرة كما تيار.

تحتاج أولا إلى استيراد وحدة سترينجيو:

من إو استيراد سترينجيو

ثم قم بإنشاء كائن سترينجيو:

سجل = سترينجيو()

يمكنك الآن كتابة البيانات إلى هذا الكائن باستخدام طريقة الكتابة (). على سبيل المثال:

سجل.اكتب ("بدأ التسجيل")

يمكنك إضافة عدة إدخالات إلى السجل:

سجل.اكتب ("خطأ غير حرج")

سجل.اكتب ("خطأ فادح")

للحصول على بيانات من كائن سترينجيو كسلسلة ، استخدم طريقة جيتفالو() :

لوغ_سلسلة = لوغ.جيتفالو()

الآن يحتوي متغير سلسلة السجل على جميع إدخالات السجل كسلسلة.

يمكن أن يكون استخدام وحدة سترينجيو لتخزين السجل في متغير مفيدا في كثير من الحالات ، خاصة عند كتابة الاختبارات أو تصحيح البرامج.

طرق متقدمة لحفظ السجل إلى متغير باستخدام مكتبات الجهات الخارجية

في القسم السابق ، نظرنا في الطرق الأساسية لحفظ سجل إلى متغير باستخدام الميزات القياسية للغة بايثون. ومع ذلك ، إذا كنت بحاجة إلى مجموعة أكثر تقدما من الوظائف للعمل مع السجلات ، فيمكنك استخدام مكتبات الجهات الخارجية التي توفر تكوينا أكثر مرونة ووظائف قوية. في هذا القسم ، سنلقي نظرة على بعض هذه المكتبات.

1. تسجيل

مكتبة التسجيل هي مكتبة بيثون مدمجة وتقدم مجموعة غنية من الميزات للعمل مع السجلات. يسمح لك بتكوين مستويات التسجيل وتنسيق الرسائل وكتابة السجلات إلى ملف وغير ذلك الكثير. لحفظ السجلات إلى متغير ، يمكنك استخدام كائن سترينجيو ، والتي سوف تسمح لك للحصول على البيانات من تيار كسلسلة:

استيراد تسجيل

استيراد إو

# إنشاء كائن لتخزين السجل في الذاكرة

لوغ_ستريم = إو.سترينجيو()

# تكوين المسجل

مسجل = تسجيل.جيتلوغر (__اسم__)

مسجل. سيتليفيل(logging.INFO )

# إنشاء معالج لكتابة السجل إلى الدفق

معالج = تسجيل.ستريمهاندلر (لوغ_ستريم)

معالج. سيتليفيل(logging.INFO )

# إعداد تنسيق رسائل السجل

المنسق = تسجيل.المنسق ('٪(أسكتيمي)س - ٪ (اسم المستوى)س - ٪(رسالة)س')

معالج.سيتفورماتر (المنسق)

# إضافة معالج إلى المسجل

مسجل.أدهاندلر (معالج)

# تسجيل رسائل السجل

logger.info ("هذه رسالة إعلامية")

مسجل.تحذير ("هذا تحذير")

# الحصول على السجل كسلسلة

سجل = لوغ_ستريم.جيتفالو()

طباعة (سجل)

.

2. لوغورو

مكتبة لوغورو هي واحدة من المكتبات طرف ثالث الأكثر شعبية للعمل مع سجلات في بيثون. إنه يوفر واجهة بسيطة وسهلة الاستخدام لتكوين واستخدام التسجيل. لحفظ السجل إلى متغير ، يمكنك استخدام خيار لوغورو لإعادة توجيه السجلات إلى كائن إو.سترينجيو:

استيراد لوغورو

استيراد إو

# إنشاء كائن لتخزين السجل في الذاكرة

لوغ_ستريم = إو.سترينجيو()

# تكوين المسجل

مسجل = لوغورو.المسجل

مسجل.إضافة (تيار السجل ، التنسيق= " {الوقت} - {المستوى} - {الرسالة}")

# تسجيل رسائل السجل

logger.info ("هذه رسالة إعلامية")

مسجل.تحذير ("هذا تحذير")

# الحصول على السجل كسلسلة

سجل = لوغ_ستريم.جيتفالو()

طباعة (سجل)

.

3. كولوردلوغس

مكتبة كولوردوغس ليس فقط يوفر القدرة على حفظ السجلات إلى متغير ، ولكن أيضا يضيف تنسيق اللون لهم لقراءة أفضل. لاستخدام كولوردلوغس وحفظ السجل إلى متغير ، يمكنك استخدام كائن إو.سترينجيو:

استيراد كولوريدلوغس

استيراد تسجيل

استيراد إو

# إنشاء كائن لتخزين السجل في الذاكرة

لوغ_ستريم = إو.StringIO()

# Настройка логгера

logger = logging.getLogger(__name__)

logger.setLevel(logging.INFO)

# Создание обработчика для записи лога в поток

handler = logging.StreamHandler(log_stream)

handler.setLevel(logging.INFO)

handler.setFormatter(coloredlogs.ColoredFormatter())

# Добавление обработчика в логгер

logger.addHandler(handler)

# Запись сообщений лога

logger.info("Это информационное сообщение")

logger.warning("Это предупреждение")

# الحصول على السجل كسلسلة

سجل = لوغ_ستريم.جيتفالو()

طباعة (سجل)

في هذا المثال ، ونحن إنشاء كائن سترينجيو لتخزين السجل في الذاكرة. ثم نقوم بتكوين المسجل وإضافة معالج سيكتب السجل إلى كائن سترينجيو الذي تم إنشاؤه. من المهم ملاحظة أننا نستخدم كائن كولوريدفورماتر من مكتبة كولوريدلوغس لإضافة تنسيق اللون إلى رسائل السجل.

في هذا القسم ، قمنا بمراجعة بعض مكتبات الجهات الخارجية التي تقدم ميزات متقدمة لحفظ السجلات إلى متغير. كل من هذه المكتبات لها ميزاتها ومزاياها الفريدة ، لذا فإن اختيار مكتبة معينة يعتمد على احتياجاتك وتفضيلاتك.

سؤال وجواب

كيف يمكنني حفظ سجل لمتغير في بيثون?

يمكنك استخدام وحدة التسجيل ، والتي تسمح لك بحفظ السجلات إلى متغير.

أي وحدة يجب أن أستخدمها لحفظ السجل إلى متغير?

الوحدة الأكثر شيوعا لحفظ السجلات إلى متغير في بايثون هي التسجيل.

ما يجب القيام به لحفظ السجل إلى متغير?

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

كيف يمكنني تكوين تنسيق السجل المحفوظ عند استخدام وحدة التسجيل في بايثون?

يمكن تكوين تنسيق السجل باستخدام كائن المنسق ، مع تحديد الحقول اللازمة لعرض المعلومات ، مثل مستوى التسجيل والوقت والرسالة وغيرها.

كيف يمكنني الحصول على سجل محفوظ من متغير?

يمكنك الحصول على سجل محفوظ من متغير بمجرد الوصول إليه باستخدام المعرف المناسب.