tgoop.com/djangolearn_ir/854
Last Update:
💎 لاگینگ (logging) در جنگو 💎
امروز میخوایم با همدیگه یکی از ابزارهای خیلی مهم برای دیباگ کردن و پیگیری کردن اتفاقات توی برنامه هامون رو بررسی کنیم: لاگینگ.
📃 لاگینگ چیه؟ به زبون ساده، لاگینگ یعنی نوشتن یه سری اطلاعات خاص در مورد اتفاقاتی که توی برنامهمون میفته توی یه فایل یا جایی دیگه.
این اطلاعات میتونه شامل زمان وقوع اتفاق، نوع اتفاق، و جزئیات دیگه ای باشه. با داشتن این اطلاعات، ما میتونیم خیلی راحت تر مشکلات برنامهمون رو پیدا کنیم و اونها رو برطرف کنیم.
❓چرا لاگینگ توی جنگو مهمه؟ 🤔
1⃣ دیباگ کردن: وقتی برنامهمون با خطا مواجه میشه، لاگ ها بهمون کمک میکنن تا بفهمیم دقیقا کجا و چرا این خطا رخ داده.
2⃣ پیگیری عملکرد: با بررسی لاگ ها میتونیم ببینیم که برنامهمون چقدر سریع اجرا میشه و کدهای مختلف چقدر زمان میبرن.
3⃣ امنیت: لاگ ها میتونن بهمون کمک کنن تا حملات امنیتی رو شناسایی کنیم و ازشون جلوگیری کنیم.
⚙ چطوری لاگینگ رو توی جنگو تنظیم کنیم؟
1⃣ وارد شدن به settings.py: اول از همه باید به فایل settings.py پروژه خودمون بریم. این فایل جاییه که همه تنظیمات کلی پروژهمون رو انجام میدیم.
2⃣ تنظیم متغیر LOGGING: توی این فایل یه متغیر به اسم LOGGING وجود داره که یه دیکشنری هست. ما باید این دیکشنری رو به شکلی که میخوایم تنظیم کنیم. مثلا برای اینکه لاگ هامون رو توی یه فایل به اسم mysite.log ذخیره کنیم، میتونیم این کد رو به settings.py اضافه کنیم:
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'handlers': {
'file': {
'level': 'DEBUG',
'class': 'logging.FileHandler',
'filename': 'mysite.log',
},
},
'loggers': {
'django': { 'handlers': ['file'], 'level': 'INFO',
},
},
}
🧐 درک تنظیمات:
version:
نسخه لاگر
disable_existing_loggers:
اگر True باشه، لاگرهای پیش فرض جنگو غیرفعال میشن.
handlers:
اینجا تعریف میکنیم که لاگ هامون رو کجا ذخیره کنیم. مثلا توی فایل، کنسول، یا یه دیتابیس.
loggers:
اینجا مشخص میکنیم که چه ماژول هایی لاگ تولید کنن و سطح لاگشون چی باشه.
🧪 پیاده سازی لاگینگ توی کد: برای استفاده از لاگینگ توی کدهامون، از ماژول logging پایتون استفاده میکنیم. مثلا:
import logging
logger = logging.getLogger(__name__)
def my_function():
logger.info(
"This is an info message"
)
logger.error(
"This is an error message"
)
📊 سطح های مختلف لاگ:
🟣 DEBUG:
برای اطلاعات خیلی جزئی
🔵 INFO:
برای اطلاعات عمومی
🟠 WARNING:
برای هشدارها
🔴 ERROR:
برای خطاها
☣ CRITICAL:
برای خطاهای خیلی جدی
⭕️ نکات مهم:
سطح لاگ رو با توجه به محیطتون تنظیم کنید: مثلا توی محیط توسعه سطح لاگ رو روی DEBUG بذارید تا همه چیز رو ببینید، اما توی محیط پروداکت سطح لاگ رو روی INFO یا بالاتر بذارید.
از لاگینگ برای دیباگ کردن استفاده کنید، اما اطلاعات حساس رو لاگ نکنید.
لاگ ها رو مرتبا بررسی کنید تا مشکلات رو زودتر پیدا کنید.
✅ خلاصه: لاگینگ یکی از ابزارهای خیلی مهم برای توسعه دهندگان جنگو هست. با استفاده از لاگینگ میتونیم برنامه های با کیفیت تر و پایدارتری بسازیم.
امیدوارم این آموزش براتون مفید بوده باشه. اگه سوالی داشتید حتما بپرسید.
#جنگو #لاگینگ #توسعه_وب #پایتون
BY جنگولرن
Share with your friend now:
tgoop.com/djangolearn_ir/854