تافهة تافهة الفرح رقم 1: loguru

سنناقش اليوم سبب حاجة شخص ما لكتابة بديل لمسجل logging بيثون القياسي وكيفية استخدام هذا الشيء.



انه مريض!


عندما يتعلق الأمر بتسجيل الدخول في بيثون ، يتبادر إلى الذهن على الفور.


logging هو حل قوي ومستقر مضمن بإحكام في نظام بيثون البيئي. يمكنك استيراده عند الضرورة ، وإجراء عدة logger.exception('--') - وهذا كل شيء ، إنه نوع من الطريقة التي يمكنك من خلالها كتابة logger.exception('--') . وسينتهي إدخال '--' في مجلة ما.


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


تظهر الأشكال المختلطة للمسجل ، والتي تبدأ بعبارة مرهقة ، ولكنها مفهومة أكثر أو أقل:


 LOGGER_CONFIG = { "version": 1, "disable_existing_loggers": False, "formatters": { "simple": { "format": "%(asctime)s - %(name)s - %(levelname)s - %(message)s" } }, "handlers": { "console": { "class": "logging.StreamHandler", "level": "DEBUG", "formatter": "simple", "stream": "ext://sys.stdout" }, }, "root": { "level": "INFO", "handlers": ["console"] } } 

هذه التكوينات تتطور بسرعة نحو شيء أكثر عسر الهضم. يعد التكوين الذي تم تكوينه عادةً logging ، مع مستويات مختلفة من التسجيل وجامعي الرسائل المختلفة وتدوير ملفات السجل ، جزءًا كبيرًا من النص يصعب بالفعل البحث فيه.


لا تؤذي وحتى ممتعة


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


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



لماذا يجب أن تفكر في loguru كبديل logging ؟


  • البساطة. حول هذا ، لقد سبق أن قلت أعلاه ، لكنني سأقولها مرة أخرى - تكوين loguru بشكل صحيح أسهل من logging .
  • مسح طرق لتكوين تناوب ملف السجل وأرشفة السجلات القديمة.
  • يتم تضمين أكوام من البطاريات بالفعل في المربع - ألوان الرسائل ، والتنسيق ، وإرسال إشعارات الفشل إلى البريد الإلكتروني ، ومكالمات استدعاء الوظائف جنبًا إلى جنب مع تقارير الأعطال والعديد من وسائل الراحة اللطيفة الأخرى.
  • وبالطبع ، عدم التزامن! نعم ، إن عالم بيثون يمضي إلى أبعد من ذلك نحو التزامن / الانتظار ، وهذا التحول التكتوني لجميع البرامج المتعطشة للسلطة يتطلب بوضوح قطعًا غير متزامن.

بالطبع ، عليك أن تدفع ثمن كل شيء. لاستخدام loguru أن تدفع شيئين:


  • ليبا صغيرة نسبياً وقد تكون هناك مفاجآت.
  • يعد المؤلفون بالتوافق التام مع logging ، ولكن قد تواجه مشكلات في توصيل loguru مع مكتبات الطرف الثالث logging . على سبيل المثال ، عند إرفاق معالجات Sentry أو Airbrake.

على الرغم من هذه الصعوبات المحتملة ، يستحق loguru أن يتم اختباره بعناية وتقييده بالفعل في مشروعك التالي.

Source: https://habr.com/ru/post/ar454436/


All Articles