یک تابع پایتون بنویس که یک فهرست از رشتههای لاگ را گرفته و تعداد پیامهای هر سطح (INFO, WARNING, ERROR) را شمرده، خلاصهای را با ماژول logging لاگ کند و در پایان یک دیکشنری با شمارشها برگرداند؛ داکاست مثالهایی برای تست خودکار ارائه کند.
7.0 بازدید آخرین ویرایش در 201 روز قبل ساعت 03:38 0.0
برای حل از ماژول logging پایتون برای نوشتن خلاصه لاگ استفاده کنید و برای پارس کردن هر خط میتوانید از split یا عبارت منظم (regex) بهره ببرید تا سطح پیام را استخراج کنید. در docstring تابع چند مثال doctest قرار دهید که خروجی دیکشنری شمارشها را بررسی کنند؛ برای اجرای تستها میتوان از python -m doctest -v فایل.py یا doctest.testmod() در بلوک __main__ استفاده کرد. نکات: قبل از تنظیم logger از duplicate handler جلوگیری کنید، سطح لاگ را مناسب قرار دهید، و تابع باید علاوه بر لاگ کردن مقدار قابل تست (دیکشنری) بازگرداند تا doctest به سادگی آن را بررسی کند.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای جلوگیری از ثبت دوبارهٔ پیامها، قبل از اضافه کردن هر هندلر به logger چک کنید که logger.handlers خالی است و در غیر این صورت از افزودن هندلرهای تکراری خودداری کنید. از یک نام منحصربهفرد برای logger مانند logging.getLogger(__name__) استفاده کنید، سطح لاگ را روی INFO یا سطح مناسب تنظیم کنید و propagate را False کنید تا از انتشار دوباره جلوگیری شود. برای استخراج سطح هر پیام از خطوط لاگ میتوانید از یک عبارت منظم (regex) یا یک split ساده استفاده کنید تا سطح INFO/WARNING/ERROR را استخراج کنید. در داکست تابع doctestهایی اضافه کنید که خروجی دیکشنری شمارش را برای نمونههای ورودی بررسی کند و اجرای doctest با python -m doctest -v فایل.py یا doctest.testmod() را راهاندازی کنید.
گزارش