از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
ورود به سیستم در برنامه نویسی چیست؟

سرفصلهای مطلب
آیا تا به حال برنامه ای اجرا کرده اید و خراب شده است؟ بدون پیام خطایی ، بدون نکات ، فقط سکوت. چگونه می فهمید که چه اشتباهی رخ داده است؟ اینجاست که ورود به سیستم باعث صرفه جویی در روز می شود.
سیاههها آنچه را که در داخل کد شما اتفاق می افتد پیگیری کنید تا وقتی همه چیز اشتباه می شود ، لازم نیست حدس بزنید. آنها شبیه به آنها هستند print
یا console.log
، اما قدرتمندتر
در این آموزش ، من از پایتون برای ایجاد و پیاده روی شما در برخی از نمونه های کد ورود به سیستم استفاده خواهم کرد.
قبل از صحبت در مورد سیاههها ، بیایید انواع مختلف خطای مورد نظر را که ممکن است استفاده کنید یا با آنها روبرو شوید ، درک کنیم.
انواع خطاها
هنگامی که در حال ساخت یک برنامه سطح تولید هستید ، باید خطاها را بر اساس نمایش دهید روی شدت آنها چندین نوع خطا وجود دارد و مهمترین آنها عبارتند از:
-
اشکال زدایی: اطلاعات دقیق ، به طور معمول برای تشخیص مشکلات مفید است.
-
اطلاعات: اطلاعات عمومی در مورد پیشرفت برنامه.
-
هشدار: اتفاق غیر منتظره ای افتاد ، اما مهم نیست.
-
خطا: خطایی رخ داد ، اما برنامه هنوز هم می تواند اجرا شود.
-
بحرانی: یک خطای بسیار جدی که ممکن است جلوی اجرای برنامه را بگیرد.
ورود به سیستم چیست؟
حال ، بیایید مستقیماً به این نکته بپردازیم و بفهمیم ورود به سیستم چیست.
به زبان ساده ، ورود به سیستم یا ورود به سیستم عمل ضبط اطلاعات در مورد هر کاری است که برنامه شما انجام می دهد. اطلاعات ضبط شده می تواند هر چیزی باشد ، از جزئیات اساسی مانند آن که توابع به موارد دقیق تر مانند ردیابی خطاهای یا مشکلات عملکرد فراخوانده شده اند.
چرا ما به ورود به سیستم نیاز داریم؟
ممکن است فکر کنید ، “اگر سیاههها در حال چاپ خطاها ، اطلاعات و غیره هستند روی، من فقط می توانم استفاده کنم print بیانیه ها چرا به ورود به سیستم نیاز دارم؟ “خوب ، print
کار می کند ، اما ورود به سیستم کنترل بیشتری به شما می دهد:
↳ می تواند پیام ها را در یک پرونده ذخیره کند.
↳ سطح مختلفی دارد (اطلاعات ، هشدار ، خطا و غیره روی).
↳ می توانید پیام ها را بر اساس فیلتر کنید روی اهمیت
↳ به اشکال زدایی بدون درهم و برهمی کد شما کمک می کند.
اینها چیزهاست print
بیانیه ها نمی توانند به طور مؤثر عمل کنند.
روش اضافه کردن سیاهههای مربوط به پایتون
در پایتون ، logging
ماژول به طور خاص برای اهداف ورود به سیستم ساخته شده است.
بیایید برخی از سیاههها را تنظیم کنیم تا ببینیم چگونه کار می کنند.
مرحله 1: ماژول ورود به سیستم را وارد کنید
برای شروع استفاده از ورود به سیستم ، ما باید import ماژول:
import logging
مرحله 2: پیام های ورود به سیستم
اکنون می توانید ورود به سیستم پیام ها را در برنامه خود شروع کنید. شما می توانید از سطوح مختلف ورود به سیستم استفاده کنید روی اهمیت پیام. به عنوان یک یادآوری ، آن سطح (از حداقل تا فوری) است:
-
اشکال زدن
-
اطلاعات
-
هشدار
-
خطا
-
بحرانی
بیایید در هر سطح یک پیام ساده وارد کنیم:
logging.debug("This is a debug message")
logging.info("This is an info message")
logging.warning("This is a warning message")
logging.error("This is an error message")
logging.critical("This is a critical message")
وقتی این کار را می کنید ، پیامی را که به آن چاپ شده است مشاهده خواهید کرد console، مشابه این:
ممکن است تعجب کنید که چرا شما را نمی بینید اشکال زدن وت اطلاعات پیام ها سطح ورود به سیستم پیش فرض از این امر جلوگیری می کند.
به طور پیش فرض ، سطح ورود به سیستم تنظیم شده است WARNING
بشر این بدان معنی است که فقط پیام هایی با شدت WARNING
یا بالاتر نمایش داده می شود (یعنی ، WARNING
با ERROR
وت CRITICAL
).
مرحله 3: پیکربندی اصلی را تنظیم کنید
برای دیدن debug
وت info
پیام ها ، ما باید سطح ورود به سیستم را تنظیم کنیم DEBUG
قبل از اجرای کد
این بدان معنی است که ما باید سیاههها را پیکربندی کنیم. بنابراین برای انجام این کار ، از روش استفاده کنید basicConfig
در زیر:
logging.basicConfig(level=logging.DEBUG)
این پیکربندی اساسی به شما امکان می دهد پیام ها را وارد کنید اشکال زدن سطح یا بالاتر شما می توانید سطح را بسته به تغییر دهید روی نوع سیاهههای مورد نظر شما.
اکنون ، همه سیاههها چاپ می شوند:
مرحله 4: وارد یک پرونده شوید
حال ، بیایید این سیاهههای مربوط را در یک پرونده ذخیره کنیم تا بتوانیم خطاها را پیگیری کنیم ، و همچنین در صورت بروز آنها. برای انجام این کار ، پیکربندی را به روز کنید:
logging.basicConfig(filename='data_log.log', level=logging.DEBUG,
format='%(asctime)s - %(levelname)s - %(message)s')
در اینجا:
-
asctime
– زمان وقوع این رویداد. -
levelname
– نوع سیاهه (به عنوان مثال ، اشکال زدنبا اطلاعات). -
message
– پیامی که ما نمایش می دهیم.
اکنون ، هنگامی که برنامه را اجرا می کنید ، پرونده ورود به سیستم سیاهههای شما را تولید و ذخیره می کند و زمان دقیق ، نوع خطا و پیام را نشان می دهد. مثل این:
روش استفاده از چوب چوب برای کنترل بیشتر
اگر کار می کنید روی یک پروژه بزرگ ، شما ممکن است یک الگوی ابزار را بخواهید که بتوانید در هر نقطه از کد از آن استفاده کنید. بیایید این الگور سفارشی را ایجاد کنیم.
ابتدا ، ما basicConfig
برای افزودن نام پرونده ، شماره خط و اطمینان از نوشتن همه چیز ، حتی شخصیت های خاص:
logging.basicConfig(
filename=log_file,
level=logging.DEBUG,
format='%(asctime)s - %(levelname)s - %(filename)s:%(lineno)d - %(message)s',
filemode='w',
encoding='utf-8'
)
توضیح:
-
encoding='utf-8'
– تضمین می کند که شخصیت های خاص از سیستم ثبت شده اند. -
%(filename)s:%(lineno)d
– نام پرونده و شماره خط را که در آن ورود به سیستم ایجاد شده است ، ثبت کنید.
حال ، بیایید یک سفارشی تنظیم کنیم console logger:
console_handler = logging.StreamHandler()
console_handler.setLevel(logging.DEBUG)
console_formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(filename)s:%(lineno)d - %(message)s') # Added line number
console_handler.setFormatter(console_formatter)
logging.getLogger().addHandler(console_handler)
این تنظیم موارد زیر را انجام می دهد:
-
console_handler
: پیام های ورود به سیستم را ارسال می کند console (stdout). -
console_formatter
: پیام ورود به سیستم با زمان ، سطح ، نام پرونده ، شماره خط و پیام. -
logging.getLogger().addHandler(console_handler)
: کنترل کننده سفارشی را به root logger ، بنابراین پیام های ورود به سیستم چاپ می شوند consoleبشر
کد کامل مثال
import logging
import os
from datetime import datetime
def setup_daily_logger():
base_dir = os.path.dirname(os.path.abspath(__file__))
log_dir = os.path.join(base_dir, 'logs')
os.makedirs(log_dir, exist_ok=True)
current_time = datetime.now().strftime("%m_%d_%y_%I_%M_%p")
log_file = os.path.join(log_dir, f"{current_time}.log")
logging.basicConfig(
filename=log_file,
level=logging.DEBUG,
format='%(asctime)s - %(levelname)s - %(filename)s:%(lineno)d - %(message)s',
filemode='w',
encoding='utf-8'
)
console_handler = logging.StreamHandler()
console_handler.setLevel(logging.DEBUG)
console_formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(filename)s:%(lineno)d - %(message)s') # Added line number
console_handler.setFormatter(console_formatter)
logging.getLogger().addHandler(console_handler)
return logging.getLogger(__name__)
حالا چه اتفاقی می افتد؟
اکنون ، هر زمان که برنامه را اجرا کنید ، یک پرونده ورود به سیستم جدید در آن ایجاد می شود logs
پوشه هر بار که این برنامه اجرا می شود ، یک فایل ورود به سیستم جدید با یک جدول زمانی منحصر به فرد ایجاد می شود.
مثل این:
این سیاههها تصویری واضح از رفتار برنامه خود و کمک به اشکال زدایی به شما می دهند.
امیدوارم این مقاله به شما کمک کند تا تصویری واضح تر از سیاهههای مربوط و اهمیت آنها در برنامه نویسی داشته باشید.
نمونه های عملی در دنیای واقعی
اکنون که می فهمید سیاههها چیست و چگونه می توانید آنها را در پایتون تنظیم کنید ، بیایید به موارد استفاده در دنیای واقعی نگاه کنیم.
1. BOT: بزرگترین وب سایت املاک کره
در اینجا نمونه ای از ربات طراحی شده برای خراش دادن بزرگترین وب سایت املاک کره.
-
سیاهههای مربوط به هر قدم که ربات انجام می دهد ، نشان می دهد که پیشرفت پیشرفت را آسان تر می کند.
-
اگر در هر مرحله خطایی رخ دهد ، در پرونده ورود به سیستم ضبط می شود.
-
حتی اگر ربات خراب شود ، می توانم سیاهههای مربوط را بررسی کنم تا مشخص شود که در آن اتفاقات رخ داده است.
یکی از روشهای موجود در کلاس این ربات از ورود به سیستم برای ردیابی اینکه آیا ربات به درستی استان را انتخاب می کند ، استفاده می کند.
در اینجا:
-
اگر خطایی یا هشدار رخ دهد ، در پرونده ورود به سیستم ذخیره می شود.
-
بعداً می توانید سیاههها را مرور کنید و دقیقاً چه اتفاقی افتاده است
2. Bot: Scraping Group Facebook
حال ، بیایید ببینیم که چگونه ورود به سیستم در یک اسکریپت گروه فیس بوک کمک می کند.
پیگیری خطا
-
در یک مقطع ، ربات به دلیل خطا شکست خورد.
-
از آنجا که ما وارد سیستم شده بودیم ، خطا در پرونده log ذخیره شد.
-
این به شما امکان می دهد به سرعت بدانید که چه اشتباهی رخ داده است.
در اینجا ، نام دقیق پرونده و شماره خط را مشاهده می کنید که خطا در آن رخ می دهد.
هنگامی که مسئله را شناسایی و رفع کردیم ، ربات دوباره شروع به کار کرد.
این همه جزئیات را در سیاهه ثبت می کند و با مشخص کردن خطاها در ساعت ها ، صرفه جویی در ساعت اشکال زدایی را نشان می دهد.
اشکال زدایی آسان شد
-
سیاهههای مربوط به جزئیات اجرای ربات ثبت شده است.
-
این می تواند ساعت ها اشکال زدایی را صرفه جویی کند زیرا شما دقیقاً می دانید که این خطا در کجا رخ داده است.
پایان
ورود به سیستم یکی از آن مواردی است که هیچ کس به آن فکر نمی کند تا چیزی که شکسته نشود. اما وقتی این کار را انجام داد ، سیاهههای مربوط به بهترین دوست شما می شوند.
به یاد داشته باشید:
-
ورود به سیستم فقط برای ردیابی خطا نیست – به شما کمک می کند تا جریان برنامه خود را کنترل کنید.
-
به جای حدس زدن چه اشتباهی ، سیاههها را بررسی کنید. جواب معمولاً در همان جا است.
حتماً به کد خود وارد شوید. بعداً از خود تشکر خواهید کرد!
در ارتباط باشید – syedamahamfahim
منتشر شده در 1404-02-12 11:23:08