برنامه نویسان پایتون اغلب از چاپ() در کد خود به عنوان یک ابزار اشکال زدایی سریع و راحت استفاده می کنند. استفاده از چارچوب ورود به سیستم فقط کمی بیشتر از این تلاش است اما بسیار ظریف تر و انعطاف پذیرتر است. ورود به سیستم و همچنین مفید بودن برای اشکال زدایی همچنین می تواند اطلاعات بیشتری - و ساختار یافته تر - در مورد وضعیت و سلامت برنامه شما فراهم کند.
بررسی اجمالی¶
جنگو از ماژول ورود به سیستم داخلی پایتون برای انجام ورود به سیستم استفاده و گسترش می دهد. این ماژول به طور مفصل در اسناد و مدارک خود پایتون مورد بحث; این بخش فراهم می کند یک مرور کلی.
بازیگران از بازیکنان¶
پیکربندی ورود به سیستم پایتون از چهار قسمت تشکیل شده است:
وبلاگ نویس¶
چوب نقطه ورود به سیستم ورود به سیستم است. هر چوب یک سطل به نام که پیام را می توان برای پردازش نوشته شده است.
چوب پیکربندی شده است به یک سطح ورود به سیستم . این سطح ورود به سیستم توصیف شدت پیام هایی که چوب رسیدگی خواهد شد. پایتون سطوح گزارش زیر را تعریف می کند:
- اشکال زدایی: اطلاعات سیستم سطح پایین برای اهداف اشکال زدایی
- اطلاعات: اطلاعات عمومی سیستم
- هشدار: اطلاعات توصیف یک مشکل کوچک است که رخ داده است.
- خطا: اطلاعات توصیف یک مشکل عمده که رخ داده است.
- انتقادی: اطلاعات توصیف یک مشکل حیاتی است که رخ داده است.
هر پیام است که به چوب نوشته شده است یک رکورد ورود به سیستم است . هر رکورد ورود به سیستم همچنین دارای یک سطح ورود به سیستم نشان می دهد شدت که پیام خاص. یک رکورد گزارش همچنین می تواند حاوی ابرداده مفیدی باشد که رویدادی را که در حال ثبت است توصیف می کند. این می تواند شامل اطلاعاتی مانند ردیابی پشته یا کد خطا باشد.
هنگامی که یک پیام به چوب داده, سطح ورود به سیستم از پیام به سطح ورود به سیستم از چوب در مقایسه. اگر سطح ورود به سیستم از پیام ملاقات و یا بیش از سطح ورود به سیستم از چوب خود را, پیام خواهد پردازش بیشتر تحت. در غیر اینصورت پیام نادیده گرفته می شود.
هنگامی که یک چوب تعیین کرده است که یک پیام نیاز به پردازش, این است که به یک کنترل گذشت .
دستگیره ها¶
کنترل موتور است که تعیین چه اتفاقی می افتد به هر پیام در یک چوب است. این یک رفتار ورود به سیستم خاص توصیف, مانند نوشتن یک پیام به صفحه نمایش, به یک فایل, و یا به یک سوکت شبکه.
مانند وبلاگ نویس, گرداننده نیز سطح ورود به سیستم. اگر سطح ورود به سیستم از یک رکورد ورود به سیستم ملاقات نمی کند و یا بیش از سطح کنترل, کنترل خواهد شد پیام را نادیده گرفت.
یک چوب بر می تواند چندین کنترل کننده داشته باشد و هر کنترل کننده می تواند سطح ورود متفاوتی داشته باشد. به این ترتیب بسته به اهمیت پیام امکان تهیه اشکال مختلف اعلان وجود دارد. برای مثال, شما می توانید از یک کنترل است که به جلو خطا و پیام های مهم به یک سرویس صفحه بندی نصب, در حالی که یک کنترل دوم سیاهههای مربوط به تمام پیام ها (از جمله خطا و پیام های مهم) به یک فایل برای تجزیه و تحلیل بعد.
فیلترها¶
از یک فیلتر برای کنترل بیشتر سوابق ورود به سیستم از لاگر به کنترل کننده استفاده می شود.
به طور پیش فرض, هر پیام ورود به سیستم که مطابق با الزامات سطح ورود به سیستم به کار گرفته خواهد شد. اما با نصب فیلتر می توانید معیارهای اضافی را در روند ورود به سیستم قرار دهید. به عنوان مثال می توانید فیلتری نصب کنید که فقط اجازه می دهد پیام های خطا از یک منبع خاص منتشر شود.
فیلترها همچنین می توانند برای تغییر رکورد ورود به سیستم قبل از انتشار استفاده شوند. مثلا, شما می توانید یک فیلتر است که جمع و جور سوابق ورود خطا به سوابق هشدار اگر یک مجموعه خاص از معیارهای ملاقات ارسال.
فیلترها را می توان در یک زنجیره برای انجام اقدامات فیلتر چندگانه استفاده کرد.
قالبها¶
در نهایت, یک رکورد ورود به سیستم نیاز به عنوان متن رندر می شود. قالب ها قالب دقیق این متن را توصیف می کنند. قالب بندی معمولا شامل یک رشته قالب بندی پایتون است که حاوی ویژگی های لوگرکورد است.
پیامدهای امنیتی¶
سیستم ثبت اطلاعات بالقوه حساس را مدیریت می کند. به عنوان مثال ثبت گزارش ممکن است حاوی اطلاعاتی در مورد درخواست وب یا ردیابی پشته باشد در حالی که برخی از داده هایی که در وبلاگ نویس های خود جمع می کنید ممکن است پیامدهای امنیتی نیز داشته باشد. شما باید اطمینان حاصل کنید که می دانید:
- چه اطلاعاتی جمع می شود
- جایی که متعاقبا ذخیره می شود
- چگونه منتقل خواهد شد
- چه کسی میتواند به این دسترسی داشته باشد.
برای کمک به کنترل مجموعه ای از اطلاعات حساس, شما به صراحت می توانید تعیین برخی از اطلاعات حساس به خارج از گزارش خطا فیلتر شود – اطلاعات بیشتر در مورد چگونه برای فیلتر گزارش خطا .
ادارهمایلهندلر ¶
مدیر داخلی ساخته شده استهندلر شایسته ذکر در زمینه امنیت است. اگر این گزینه فعال باشد, پیام ایمیلی که ارسال می کند حاوی یک ردیابی کامل است, با نام و مقادیر متغیرهای محلی در هر سطح از پشته, به علاوه مقادیر تنظیمات جنگو شما (به عبارت دیگر, همان سطحی از جزییات که در صورت صحت اشکال زدایی در یک صفحه وب نمایش داده می شود ).
به طور کلی ارسال چنین اطلاعات بالقوه حساس از طریق ایمیل ایده خوبی در نظر گرفته نمی شود. در نظر بگیرید به جای استفاده از یکی از بسیاری از خدمات شخص ثالث که سیاهههای مربوط دقیق می تواند ارسال شود برای دریافت بهترین از جهان های متعدد-اطلاعات غنی از ردیابی کامل, مدیریت روشن است که مطلع و دسترسی به اطلاعات است, و غیره.
پیکربندی ورود به سیستم¶
کتابخانه ورود به سیستم پایتون چندین روش برای پیکربندی ورود به سیستم از یک رابط برنامه ای گرفته تا پرونده های پیکربندی را فراهم می کند. به طور پیش فرض, جنگو با استفاده از فرمت دیکتاتوری .
به منظور پیکربندی ورود به سیستم, شما با استفاده از ورود به سیستم برای تعریف یک فرهنگ لغت از تنظیمات ورود به سیستم. این تنظیمات توصیف وبلاگ نویس, گرداننده, فیلتر و فرمت های که شما می خواهید در راه اندازی ورود به سیستم خود را, و سطح ورود و خواص دیگر که شما می خواهید این اجزای به.
به طور پیش فرض, تنظیمات ورود به سیستم با پیکربندی ورود به سیستم به طور پیش فرض جنگو با استفاده از طرح زیر با هم ادغام شدند.
اگر غیرفعال کردن_لیگگرهای موجود در دیکتاتور ورود به سیستم روی درست تنظیم شده است (که در صورت عدم وجود کلید به طور پیش فرض دیکتاتور است) سپس همه لاگرهای پیکربندی پیش فرض غیرفعال می شوند. وبلاگ نویس غیر فعال هستند همان حذف نمی; چوب هنوز هم وجود خواهد داشت, اما در سکوت هر چیزی به سیستم وارد را دور بیندازید, حتی انتشار مطالب به یک چوب پدر و مادر. بنابراین شما باید بسیار مراقب باشید با استفاده از 'غیرفعال کردن_لاگرهای موجود': درست; احتمالا این چیزی نیست که شما می خواهید. بجای, شما می توانید غیر فعال کردن _ وجود _ لاگرها به نادرست و دوباره تعریف برخی یا همه از وبلاگ نویس به طور پیش فرض; یا می توانید ورود به سیستم را به هیچ وجه تنظیم کنید و خودتان پیکربندی ورود به سیستم را انجام دهید .
ورود به سیستم به عنوان بخشی از راه اندازی جنگو عمومی پیکربندی() تابع. بنابراین می توانید اطمینان حاصل کنید که وبلاگ نویس ها همیشه برای استفاده در کد پروژه شما اماده هستند.
مثالها¶
مستندات کامل برای فرمت دیکتاتوری بهترین منبع اطلاعات در مورد لغت نامه های پیکربندی ورود به سیستم است. با این حال, به شما یک طعم و مزه از چه ممکن است را, در اینجا چند نمونه هستند.
برای شروع, در اینجا یک پیکربندی کوچک است که اجازه خواهد داد که شما را به خروجی تمام پیام های ورود به کنسول:
این پیکربندی چوب ریشه پدر و مادر برای ارسال پیام با سطح هشدار دهنده و بالاتر به کنترل کنسول. با تنظیم سطح به اطلاعات و یا اشکال زدایی شما می توانید پیام های بیشتری نمایش داده شود. این ممکن است در طول توسعه مفید باشد.
بعد ما می توانیم ورود به سیستم دقیق تر را اضافه کنیم. در اینجا یک مثال از نحوه ایجاد سیستم ورود به سیستم چاپ پیام های بیشتر از فقط جنگو به نام چوب است:
به طور پیش فرض, این پیکربندی پیام از چوب جنگو از اطلاعات سطح و یا بالاتر به کنسول می فرستد. این همان سطح به عنوان پیکربندی ورود به سیستم به طور پیش فرض جنگو است, جز این که پیکربندی پیش فرض تنها نمایش سوابق ورود به سیستم زمانی که اشکال زدایی=درست . جنگو کند بسیاری از جمله پیام های سطح اطلاعات ورود نیست. با استفاده از این پیکربندی, با این حال, شما همچنین می توانید متغیر محیطی جنگو_لاگ_سطح=اشکال زدایی برای دیدن همه از ورود به سیستم اشکال زدایی جنگو است که بسیار طولانی به عنوان شامل تمام نمایش داده شد پایگاه داده.
لازم نیست وارد کنسول شوید. در اینجا یک پیکربندی که می نویسد تمام ورود به سیستم از جنگو به نام چوب به یک فایل محلی است:
اگر شما استفاده از این مثال, حتما به تغییر مسیر 'نام فایل' به یک محل است که قابل نوشتن توسط کاربر که در حال اجرا نرم افزار جنگو.
سرانجام, در اینجا یک مثال از راه اندازی ورود به سیستم نسبتا پیچیده است:
این پیکربندی ورود به سیستم کارهای زیر را انجام می دهد:
پیکربندی را به عنوان فرمت نسخه 1 دیکتاتور شناسایی می کند. در حال حاضر این تنها نسخه فرمت دیکتاتوری است.
دو قالب را تعریف می کند:
ساده, که خروجی نام سطح ورود به سیستم (به عنوان مثال, اشکال زدایی ) و پیام ورود به سیستم.
رشته فرمت یک رشته قالب بندی معمولی پایتون است که جزییاتی را که قرار است در هر خط ورود به سیستم تولید شود توصیف می کند. لیست کامل جزییات قابل خروجی را می توان در اشیای قالب بندی یافت .
طولانی , که خروجی نام سطح ورود به سیستم, پیام ورود به سیستم, به علاوه زمان, روند, موضوع و ماژول که تولید پیام ورود به سیستم.
دو فیلتر را تعریف می کند:
- پروژه.ورود به سیستم.ویژه فیلتر با استفاده از نام مستعار ویژه . اگر این فیلتر نیاز به استدلال های اضافی داشته باشد می تواند به عنوان کلید های اضافی در فرهنگ لغت پیکربندی فیلتر فراهم شود. در این مورد, تولی استدلال داده خواهد شد یک مقدار از نوار در هنگام نمونه ویژهفیلتر .
- جنگو.زمانبندی.ورود.نیازباگترو که در صورت صحت اشکال زدایی رکوردها را منتقل می کند .
دو کنترل کننده را تعریف می کند:
- کنسول, یک جریان, که چاپ هر گونه اطلاعات (یا بالاتر) پیام به سیستم.سردر . این کنترل با استفاده از فرمت خروجی ساده است.
- ایمیل مدیریتی که هرگونه پیام خطا (یا بالاتر) را به مدیران سایت ارسال می کند . این کنترل کننده از فیلتر مخصوص استفاده می کند.
پیکربندی سه وبلاگ نویس:
- جنگو, که می گذرد تمام پیام ها را به کنترل کنسول.
- جنگو.درخواست, که تمام پیام های خطا را به کنترل کننده ادمین های پست ارسال می کند. علاوه بر این, این چوب مشخص شده است به پیام های انتشار نیست. این به این معنی است که ورود پیام های نوشته شده به جنگو.درخواست خواهد شد چوب جنگو به کار گرفته نمی.
- پروژه کوچک.سفارشی که تمام پیام ها را در اطلاعات یا بالاتر منتقل می کند که فیلتر ویژه را نیز به دو کنترل کننده – کنسول و ادمین های پستی منتقل می کند . این بدان معنی است که تمام پیام های سطح اطلاعات (یا بالاتر) در کنسول چاپ می شوند.
پیکربندی ورود به سیستم سفارشی¶
اگر شما نمی خواهید به استفاده از فرمت دیکتاتور پایتون برای پیکربندی چوب خود را, شما می توانید طرح پیکربندی خود را مشخص کنید.
تنظیمات ورود به سیستم قابل فراخوانی است که استفاده می شود برای پیکربندی وبلاگ نویس جنگو را تعریف می کند. به طور پیش فرض به ورود به سیستم پایتون اشاره می کند.پیکربندی.عملکرد دیکتاتوری (). با این حال, اگر شما می خواهید به استفاده از یک فرایند پیکربندی های مختلف, شما می توانید هر گونه دیگر قابل فراخوانی است که طول می کشد یک استدلال واحد استفاده. محتویات ورود به سیستم خواهد شد به عنوان ارزش که استدلال در هنگام ورود به سیستم پیکربندی شده است فراهم شده است.
غیرفعال کردن پیکربندی ورود به سیستم¶
اگر شما نمی خواهید برای پیکربندی ورود به سیستم در همه (و یا شما می خواهید به صورت دستی پیکربندی ورود به سیستم با استفاده از روش خود را), شما می توانید ورود به سیستم به هیچ تنظیم . با این کار روند پیکربندی ورود به سیستم پیش فرض جنگو غیرفعال می شود .
تنظیم ورود به سیستم به هیچ فقط به این معنی است که فرایند پیکربندی خودکار غیرفعال است و خود را وارد نمی کند. اگر شما روند پیکربندی غیر فعال کردن, جنگو هنوز هم تماس ورود به سیستم را, سقوط به هر رفتار ورود به سیستم به طور پیش فرض تعریف شده است.
در اینجا مثالی وجود دارد که پیکربندی ورود به سیستم جنگو را غیرفعال می کند و سپس ورود به سیستم را به صورت دستی پیکربندی می کند:
توجه داشته باشید که فرایند پیکربندی پیش فرض فقط پس از بارگیری کامل تنظیمات ورود به سیستم را فراخوانی می کند. در مقابل, دستی پیکربندی ورود به سیستم در فایل تنظیمات خود را خواهد پیکربندی ورود به سیستم خود را بلافاصله بارگذاری. به همین ترتیب پیکربندی ورود به سیستم شما باید بعد از هر تنظیماتی که بستگی دارد ظاهر شود.