الباندا هو مشروع المرحلة الأولى لإنشاء حزمة تسجيل Pythonic أكثر. الاستعمال: جعل العمل عرض: >>> SYS الاستيراد؛ sys.stderr = sys.stdout الإعداد بسيطة في main.py الخاص بك: >>> الباندا استيراد >>> twiggy.quick_setup () تسجيل الرسائل >>> من الباندا استيراد * الواجهة الرئيسية هي سجل السحر: >>> سجل #doctest: + القطع وهي تعمل من خارج منطقة الجزاء، وذلك باستخدام مستويات القياسية: >>> log.debug ('قد لا أهتم') التصحيح: قد لا يهتم >>> log.error ('OMFG! سروال على النار!') خطأ: OMFG! السراويل على النار! وهو يدعم مجموعة متنوعة من سلاسل الشكل، المتعثرين إلى نمط جديد: >>> log.info ('أنا أرتدي {0} في بلدي {حيث}'، 'السراويل، حيث =' الساقين ') INFO: أنا ارتداء السراويل على ساقي الطراز القديم يعمل بشكل جيد على الرغم من: >>> log.options (نمط = 'في المئة). المعلومات (' أنا أحب٪ ق '، "الدراجات") INFO: أنا أحب الدراجات كما تفعل قوالب: >>> log.options (نمط = 'الدولار'). معلومات ('$ ما قتل "، ما =' سيارات ') INFO: سيارات تقتل يمكنك تسمية قطع الاشجار الخاص بك: >>> mylog = log.name ('ألفريدو') >>> mylog.debug ('مرحبا') التصحيح: ألفريدو: مرحبا لكن الاسم لا علاقة له الكائن؛ انها مجرد للاستخدام البشري: >>> mylog هو log.name ('ألفريدو') زائف الباعثة للرسائل تقترن بواعث بتساهل: >>> twiggy.emitters #doctest: + القطع {'*': } يمكنك تعيين min_level على بواعث: >>> twiggy.emitters ['*']. min_level = twiggy.Levels.INFO >>> log.debug ("تعليمات، مساعدة أنا يجري قمعها") >>> log.info ("أنا لم يمت تماما بعد") INFO: أنا لم يمت تماما بعد يمكنك تصفية على regexes، أو مع وظائف التعسفية: >>> twiggy.emitters ['*']. فلتر = ". * السراويل. *" >>> log.info ("حصلت على {0} في"، "السراويل") INFO: حصلت على سروالي >>> log.info ("حصلت على {0} في"، "قميص") دعونا إعادة جميع ما يلي: >>> twiggy.emitters ['*']. فلتر = صحيح >>> twiggy.emitters ['*']. min_level = twiggy.Levels.DEBUG أفضل إخراج وقمعت أسطر جديدة افتراضيا؛ يمكن إيقاف كل رسالة: >>> log.info ('المستخدم ninput nannoys جامعة سنغافورة الوطنية') INFO: المستخدم ninput nannoys جامعة سنغافورة الوطنية >>> log.options (suppress_newlines = خطأ). معلومات ('نحن ndeal') INFO: نحن صفقة تكون مسبوقة الاستثناءات. يمكن أيضا تمرير exc_info. استخدام ' ن' كما بادئة إلى أضعاف في سطر واحد: >>> محاولة: ... 1/0 ... ما عدا: ... log.trace ('خطأ') تحذير ('يا اللاءات') #doctest: + القطع تحذير: يا اللاءات TRACE Traceback (معظم المكالمات الأخيرة الأخيرة): TRACE ملف ""، سطر 2، في TRACE 1/0 TRACE ZeroDivisionError: قسمة عدد صحيح أو مودولو التي كتبها zero طريقة التقييد أنا أحب هذا النمط بالسلاسل الكثير. >>> log.name ('بينيتو'). المعلومات ('مرحبا هناك) INFO: بينيتو: مرحبا هناك يجعل تسجيل منظم سهل: >>> log.fields (مسارات = 42). معلومات ('الذهاب للنزهة') INFO: مسارات = 42: الذهاب للنزهة قطع قصيرة. كبيرة لجمع إحصاءات وقت التشغيل. >>> log.struct (مسارات = 42، الدلافين = 'شاكرين') INFO: الدلافين = بالشكر: مسارات = 42: ملزمة جزئية يمكن أن تكون مفيدة لwebapps: >>> per_request_log = log.fields (request_id = '12345') >>> per_request_log.fields (الصفوف = 100، المستخدم = 'صريحة'). المعلومات ('frobnicating قاعدة البيانات') INFO: request_id = 12345: الصفوف = 100: المستخدم = صريحة: قاعدة بيانات frobnicating >>> per_request_log.fields (بايت = 5678). معلومات ('إرسال الصفحة عبر أنابيب') INFO: بايت = 5678: request_id = 12345: إرسال الصفحة عبر أنابيب أسلوب بالسلاسل رائع: >>> ('مثير' السراويل =). معلومات log.name ('donjuan'). المجالات ("مرحبا، {الذي} يريدون {ما}؟"، الذي = 'السيدات'، ما = 'الرقص') INFO: donjuan: السراويل = مثير: مرحبا، أيها السيدات ترغب في الرقص؟ دينامية! ويطلق أية وظائف في وسائط / الحقول وقيمة substitued: >>> السراج استيراد >>> من twiggy.lib thread_name استيراد >>> thread_name () 'MainThread " >>> log.fields (PID = os.getpid). معلومات ("أنا في موضوع {0}"، thread_name) #doctest: + القطع INFO: معرف المنتج = 1076: أنا في موضوع MainThread هذا يمكن أن يكون مفيدا مع قطع الاشجار ملزمة جزئيا، والتي تتيح لنا من القيام ببعض الاشياء باردة: >>> ThreadTracker فئة (كائن): ... مواطنه __init __ (النفس، الكائنات): ... النفس .__ الكائنات = الكائنات ... # ومسجل ملزمة جزئيا ... النفس .__ تسجيل = log.name ("تعقب"). المجالات (obj_id = معرف (الكائنات)، موضوع = thread_name) ... النفس .__ log.debug ("بدأت تتبع") ... مواطنه __getattr __ (النفس، ATTR): ... النفس .__ log.debug ("الوصول {0}"، ATTR) ... عودة getattr (النفس .__ الكائنات، ATTR) ... >>> الطبقة بانش (كائن): ... تمر ... >>> فو = بانش () >>> foo.bar = 42 >>> تعقب = ThreadTracker (فو) التصحيح: تعقب: obj_id = 14063980: موضوع = MainThread: بدأت تتبع >>> tracked.bar التصحيح: تعقب: obj_id = 14063980: موضوع = MainThread: شريط الوصول 42 >>> خيوط استيراد >>> ر = threading.Thread (الهدف = امدا: tracked.bar * 2، واسم = "TheDoubler") >>> t.start () التصحيح: تعقب: obj_id = 14063980: موضوع = TheDoubler: شريط الوصول إذا كنت تريد حقا أن تسجيل واستدعاء، repr () أو التفاف عليه في امدا. تحسينات باعتبارها الأمثل، ويمكن تعيين min_level على قطع الاشجار: >>> mylog.min_level = twiggy.Levels.INFO >>> mylog.info ("أنت ترى هذا") INFO: ألفريدو: أنت ترى هذا >>> mylog.debug ("هذا هو مخفي") كما أنها تأخذ التصفية التي تعمل على format_spec. حالة استخدام واغلاق بكفاءة عن طريق الرسائل الخاصة في المكتبة التي يتم القيام بشيء غبي: >>> mylog.filter = امدا الصورة: "الخدع" ليست في الصورة >>> mylog.info ("ابتداء من سخف") INFO: ألفريدو: سخافة ابتداء من >>> لأنني في xrange (3): # لقيم كبيرة من 3 ... mylog.info ("أدعو الاشكالات!") >>> mylog.info ("وضع حد السخف") INFO: ألفريدو: نهاية سخافة
المتطلبات:
بيثون
11 May 15
لم يتم العثور على التعليقات