DJANGOLEARN_IR Telegram 854
Forwarded from Ninja Learn | نینجا لرن (Mohammad)
💎 لاگینگ (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 یا بالاتر بذارید.

از لاگینگ برای دیباگ کردن استفاده کنید، اما اطلاعات حساس رو لاگ نکنید.
لاگ ها رو مرتبا بررسی کنید تا مشکلات رو زودتر پیدا کنید.

خلاصه: لاگینگ یکی از ابزارهای خیلی مهم برای توسعه دهندگان جنگو هست. با استفاده از لاگینگ میتونیم برنامه های با کیفیت تر و پایدارتری بسازیم.

امیدوارم این آموزش براتون مفید بوده باشه. اگه سوالی داشتید حتما بپرسید.


#جنگو #لاگینگ #توسعه_وب #پایتون
👍143



tgoop.com/djangolearn_ir/854
Create:
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

View MORE
Open in Telegram


Telegram News

Date: |

Co-founder of NFT renting protocol Rentable World emiliano.eth shared the group Tuesday morning on Twitter, calling out the "degenerate" community, or crypto obsessives that engage in high-risk trading. Ng, who had pleaded not guilty to all charges, had been detained for more than 20 months. His channel was said to have contained around 120 messages and photos that incited others to vandalise pro-government shops and commit criminal damage targeting police stations. Deputy District Judge Peter Hui sentenced computer technician Ng Man-ho on Thursday, a month after the 27-year-old, who ran a Telegram group called SUCK Channel, was found guilty of seven charges of conspiring to incite others to commit illegal acts during the 2019 extradition bill protests and subsequent months. The administrator of a telegram group, "Suck Channel," was sentenced to six years and six months in prison for seven counts of incitement yesterday. Just at this time, Bitcoin and the broader crypto market have dropped to new 2022 lows. The Bitcoin price has tanked 10 percent dropping to $20,000. On the other hand, the altcoin space is witnessing even more brutal correction. Bitcoin has dropped nearly 60 percent year-to-date and more than 70 percent since its all-time high in November 2021.
from us


Telegram جنگولرن
FROM American