افزودن لاگ به اسکریپت پایتون — راهنمای کاربردی

۱۱۰ بازدید
آخرین به‌روزرسانی: ۱۹ تیر ۱۴۰۲
زمان مطالعه: ۲ دقیقه
افزودن لاگ به اسکریپت پایتون — راهنمای کاربردی

در این مقاله، چگونگی افزودن قطعه کدی به اسکریپت‌های پایتون آموزش داده شده است که امکان ثبت لاگ (Log) را به فایل‌های پایتون اضافه کند. در واقع، بدین شکل می‌توان اطلاعات مربوط به خطاها و دیگر موارد را لاگ (سوابق مربوط به آن‌ها را ثبت کرد) و با هدف خطایابی یا دیگر موارد، از آن‌ها استفاده کرد. در ادامه، روش افزودن لاگ به اسکریپت پایتون همراه با کدهای لازم برای انجام این کار، ارائه شده است.

فهرست مطالب این نوشته

افزودن لاگ به اسکریپت پایتون

راهکار اول در این راستا، استفاده از ماژول لاگ کردن برای یک برنامه ساده است.

1import logging 
2  
3def main(): 
4    # Configure the logging system 
5    logging.basicConfig(filename ='app.log', 
6                        level = logging.ERROR) 
7      
8    # Variables (to make the calls that follow work) 
9    hostname = 'www.python.org'
10    item = 'spam'
11    filename = 'data.csv'
12    mode = 'r'
13      
14    # Example logging calls (insert into your program) 
15    logging.critical('Host %s unknown', hostname) 
16    logging.error("Couldn't find %r", item) 
17    logging.warning('Feature is deprecated') 
18    logging.info('Opening file %r, mode = %r', filename, mode) 
19    logging.debug('Got here') 
20      
21if __name__ == '__main__': 
22main() 
  • پنج فراخوانی لاگ (()critical(), error(), warning(), info(), debug) نشانگر سطوح مختلف دقت به ترتیب افزایشی (صعودی) است.
  • آرگومان سطح به basicConfig()‎ یک فیلتر است. همه پیام‌ها در سطح پایین‌تری از این تنظیمات، نادیده انگاشته می‌شود.

آرگومان برای هر عملیات لاگ یک رشته پیغام است که به وسیله صفر یا تعداد بیشتری آرگومان دنبال می‌شود. هنگامی که آخرین پیغام لاگ ساخته می‌شود، عمل‌گر % برای قالب‌بندی رشته پیغام با استفاده از آرگومان‌های فراهم شده مورد استفاده قرار می‌گیرد.

در صورت اجرای کد بالا، محتوای فایل app.log به صورت زیر خواهد بود.

CRITICAL:root:Host www.python.org unknown
ERROR:root:Could not find 'spam'

برای تغییر خروجی یا سطح خروجی، پارامترها به Config()‎ پایه تغییر می‌کنند و فراخوانی به صورتی که در کد زیر آمده، انجام می‌شود.

logging.basicConfig( 
filename = 'app.log', 
level = logging.WARNING, 
format = '%(levelname)s:%(asctime)s:%(message)s')

خروجی قطعه کد بالا به صورت زیر است.

CRITICAL:2012-11-20 12:27:13, 595:Host www.python.org unknown
ERROR:2012-11-20 12:27:13, 595:Could not find 'spam'
WARNING:2012-11-20 12:27:13, 595:Feature is deprecated

پیکربندی لاگ به صورت کد سخت به طور مستقیم در برنامه انجام شده است. برای پیکربندی آن از فایل پیکربندی، باید فراخوانی basicConfig()‎ را به صورت زیر تغییر داد.

1import logging 
2import logging.config 
3  
4def main(): 
5    # Configure the logging system 
6    logging.config.fileConfig('logconfig.ini') 
7    ... 

اکنون، پیکربندی مانند زیر باید ساخته شود.

[loggers]
keys=root

[handlers]
keys=defaultHandler

[formatters]
keys=defaultFormatter

[logger_root]
level=INFO
handlers=defaultHandler
qualname=root

[handler_defaultHandler]
class=FileHandler
formatter=defaultFormatter
args=('app.log', 'a')

[formatter_defaultFormatter]
format=%(levelname)s:%(name)s:%(message)s

برای تغییر دادن پیکربندی، می‌توان فایل را به صورتی که مناسب است پیکربندی کرد. این کد برای برنامه‌ها و اسکریپت‌های ساده مناسب است.

فقط کافی است که کاربر اطمینان حاصل کند که basicConfig()‎ پیش از هر فراخوانی لاگی، فراخوانی شده و برنامه خروجی لاگ را می‌سازد.

اگر نوشته بالا برای شما مفید بوده است، آموزش‌های زیر نیز به شما پیشنهاد می‌شوند:

^^

بر اساس رای ۶ نفر
آیا این مطلب برای شما مفید بود؟
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
منابع:
GeeksforGeeks
نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *