در یک اسکریپت پایتون ساده، چگونه باید لاگها را طوری تنظیم کنید که هم به کنسول (stdout) با سطح INFO و هم به فایل با سطح DEBUG نوشته شوند و هنگام بروز استثنا، پشتهخطا نیز در لاگ ذخیره شود؟
1.0 بازدید آخرین ویرایش در 220 روز قبل ساعت 01:53 0.0
با استفاده از ماژول استاندارد logging در پایتون این کار را انجام دهید: یک logger بسازید و سطح کلی آن را DEBUG تنظیم کنید، سپس دو handler تعریف کنید — StreamHandler برای خروجی به کنسول با سطح INFO و FileHandler (یا RotatingFileHandler) برای نوشتن در فایل با سطح DEBUG — و برای هر کدام formatter مناسب تعیین کنید و به logger اضافه کنید. برای ثبت استثناها از logger.exception یا logger.error(..., exc_info=True) استفاده کنید تا پشتهخطا در لاگ ذخیره شود; نکات عملی برای محیطهای DevOps: لاگهای کنسول را برای کانتینرها به stdout ارسال کنید و در تستها از ابزارهایی مانند unittest.assertLogs یا pytest caplog برای بررسی خروجی لاگ استفاده نمایید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای پیکربندی لاگ در پایتون، یک logger با سطح DEBUG بسازید و دو handler اضافه کنید: StreamHandler برای خروجی به stdout با سطح INFO و FileHandler یا RotatingFileHandler با سطح DEBUG. برای هر handler فرمتدهی مناسب تعیین کنید تا پیامها به شکل منسجم و با تاریخ و سطح لاگ نمایش یابند. برای ثبت استثناها، از logger.exception یا logger.error(..., exc_info=True) استفاده کنید تا پشتهخطا در لاگ ذخیره شود. در محیطهای DevOps و کانتینرها، لاگهای کنسول را به stdout هدایت کنید و برای تستها از caplog یا unittest.assertLogs استفاده کنید.
گزارش