Logging را فعال کنید

این کتابخانه، گزارش‌گیری‌های متنوعی را برای تعاملات API گوگل ادز ارائه می‌دهد. می‌توانید موارد زیر را ثبت کنید:

  • اطلاعات دقیق: درخواست‌های کامل ارسال شده به API و پاسخ‌های دریافتی.
  • خلاصه‌های مختصر: مروری سطح بالا بر تعاملات.

و شما می‌توانید این تنظیمات ثبت وقایع را از دو طریق کنترل کنید:

  • پیکربندی کتابخانه‌ی کلاینت: از گزینه‌های پیکربندی خاص کتابخانه استفاده کنید.
  • برنامه‌نویسی با پایتون: از چارچوب ثبت وقایع داخلی پایتون برای کنترل مستقیم‌تر استفاده کنید.

ثبت وقایع (logging) به طور خودکار هنگام مقداردهی اولیه یک نمونه از GoogleAdsClient پیکربندی می‌شود. این مرحله مقداردهی اولیه، به عنوان مثال، هنگامی که از متد load_from_storage استفاده می‌کنید، رخ می‌دهد. در این مرحله، کتابخانه:

  • تنظیمات ثبت وقایع مشخص‌شده‌تان را از پیکربندی آن بخوانید.
  • برای فعال کردن این تنظیمات، آنها را به logging.config.dictConfig که در پایتون تعبیه شده است، ارسال کنید.

وقتی این کتابخانه به عنوان یک بسته نصب شده استفاده می‌شود، باید ثبت وقایع آن را با تنظیمات ثبت وقایع برنامه خود ادغام کنید. به طور خاص، باید یک کنترل‌کننده ثبت وقایع را با استفاده از متد addHandler به نمونه ثبت وقایع خود کتابخانه اضافه کنید. این کنترل‌کننده تعیین می‌کند که پیام‌های ثبت وقایع کتابخانه به کجا هدایت شوند (مثلاً به کنسول، یک فایل و غیره). برای انجام این کار، ابتدا نمونه ثبت وقایع کتابخانه را همانطور که در اینجا نشان داده شده است، بازیابی کنید:

import logging

logger = logging.getLogger('google.ads.googleads.client')

پس از بازیابی لاگ کتابخانه، می‌توانید به آن بگویید که پیام‌های لاگ را کجا نمایش دهد.

  • ارسال گزارش‌ها به کنسول: برای نمایش پیام‌های گزارش در کنسول، یک کنترل‌کننده‌ی پایه اضافه می‌کنید. در اینجا نحوه‌ی هدایت گزارش‌ها به خروجی استاندارد ( stdout ) آورده شده است:

    و در اینجا نحوه تنظیم یک کنترل‌کننده اولیه که به logger دستور چاپ در stdout را می‌دهد، آورده شده است:

    import sys
    
    # Assuming 'logger' was retrieved as per previous instructions
    logger.addHandler(logging.StreamHandler(sys.stdout))
    

    اگر ترجیح می‌دهید گزارش‌ها را به خطای استاندارد ( stderr ) ارسال کنید، که اغلب برای پیام‌های خطا و هشدارها استفاده می‌شود:

    import sys
    
    # Assuming 'logger' was retrieved as per previous instructions
    logger.addHandler(logging.StreamHandler(sys.stderr))
    
  • پیکربندی سایر تنظیمات ثبت وقایع از طریق برنامه‌نویسی: پس از ایجاد شیء ثبت وقایع، می‌توانید سایر تنظیمات ثبت وقایع را نیز از طریق برنامه‌نویسی و با استفاده از ماژول ثبت وقایع داخلی پایتون تغییر دهید. به عنوان مثال، برای تغییر سطح ثبت وقایع به DEBUG (که پیام‌های دقیق‌تری را نشان می‌دهد):

    logger.setLevel(logging.DEBUG)
    

سطوح لاگ

کلاینت در چند سطح مختلف لاگ تولید می‌کند و شما می‌توانید پیکربندی خود را طوری تنظیم کنید که برخی یا همه موارد زیر را ببینید:

سطح درخواست موفق درخواست ناموفق
DEBUG یک گزارش دقیق با اشیاء کامل درخواست و پاسخ به صورت JSON. یک گزارش دقیق با درخواست کامل و اشیاء استثنا به صورت JSON.
INFO خلاصه‌ای مختصر با فیلدهای درخواست و پاسخ مشخص. یک گزارش دقیق با درخواست کامل و اشیاء استثنا به صورت JSON.
WARNING هیچکدام خلاصه‌ای مختصر شامل اطلاعات خاص درخواست، وضعیت استثنا و پیام مربوطه.

از آنجایی که چارچوب ثبت وقایع پایتون، پیام‌های لاگی را که شدت کمتری نسبت به سطح پیکربندی‌شده دارند، نادیده می‌گیرد، تنظیم روی WARNING به این معنی است که شما فقط پیام‌های مختصر مربوط به درخواست‌های ناموفق را مشاهده خواهید کرد، اما تنظیم روی DEBUG به این معنی است که شما تمام انواع ممکن لاگ‌ها را در جدول بالا مشاهده خواهید کرد.

ثبت در پرونده

وقتی اسکریپت‌های نمونه‌ای مانند get_campaigns.py را از خط فرمان خود اجرا می‌کنید، هر پیام لاگی که معمولاً در کنسول چاپ می‌شود، می‌تواند به یک فایل هدایت (یا "piped") شود. این یک ویژگی پوسته سیستم عامل شماست، نه خود کتابخانه پایتون. نحوه انجام آن به این صورت است:

برای ذخیره خروجی استاندارد (بیشتر گزارش‌ها) در یک فایل (رونویسی آن):

python get_campaigns.py -c $CLIENT_ID > campaign_logs.txt

برای افزودن خروجی استاندارد به یک فایل:

python get_campaigns.py -c $CLIENT_ID >> campaign_logs.txt

برای ذخیره خروجی استاندارد و خطای استاندارد (برای خطاها/هشدارها) در یک فایل:

python get_campaigns.py -c $CLIENT_ID > all_logs.txt 2>&1

(یا، در برخی پوسته‌های مدرن مانند Bash 4+):

python get_campaigns.py -c $CLIENT_ID &> all_logs.txt

رهگیرهای ثبت وقایع

کتابخانه کلاینت پایتون از رهگیرهای gRPC برای دسترسی و ثبت جزئیات درخواست و پاسخ استفاده می‌کند. شما می‌توانید با ایجاد یک رهگیر gRPC با منطق سفارشی، ثبت وقایع سفارشی خود را تنظیم کنید. برای جزئیات بیشتر و نمونه‌ای از یک رهگیر ثبت وقایع سفارشی، به راهنمای ثبت وقایع مراجعه کنید.