הפעלת רישום ביומן

הספרייה מספקת רישום מגוון של אינטראקציות עם Google Ads API. אתם יכולים לצלם:

  • מידע מפורט: בקשות מלאות שנשלחו ל-API ותשובות שהתקבלו.
  • סיכומים תמציתיים: סקירה כללית של האינטראקציות.

יש שתי דרכים לשנות את הגדרות הרישום ביומן:

  • הגדרת ספריית הלקוח: משתמשים באפשרויות ההגדרה הספציפיות של הספרייה.
  • באמצעות תוכנה עם Python: אפשר להשתמש במסגרת הרישום ביומן המובנית של Python כדי לקבל שליטה ישירה יותר.

הרישום ביומן מוגדר אוטומטית כשמפעילים מופע של GoogleAdsClient. שלב האתחול הזה מתרחש, למשל, כשמשתמשים בשיטה load_from_storage. בשלב הזה, הספרייה:

  • קוראים את הגדרות הרישום שצוינו מתוך ההגדרה שלו.
  • מעבירים את ההגדרות האלה לפונקציה המובנית logging.config.dictConfig של Python כדי להפעיל אותן.

כשמשתמשים בספרייה הזו כחבילה מותקנת, צריך לשלב את הרישום שלה ביומן עם הגדרת הרישום ביומן של האפליקציה. באופן ספציפי, צריך להוסיף handler לרישום ביומן למופע של כלי רישום ביומן של הספרייה באמצעות השיטה addHandler. ה-handler הזה יקבע לאן יופנו הודעות היומן של הספרייה (למשל, למסוף, לקובץ וכו'). כדי לעשות זאת, קודם מאחזרים את מופע היומן של הספרייה, כמו שמוצג כאן:

import logging

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

אחרי שמקבלים את ה-logger של הספרייה, אפשר להגדיר לו לאן להוציא את הודעות היומן.

  • שליחת יומנים למסוף: כדי להציג הודעות יומן במסוף, מוסיפים מטפל בסיסי. כך מעבירים יומנים לפלט רגיל (stdout):

    כך מגדירים handler בסיסי שיורה ל-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))
    
  • הגדרה של הגדרות רישום אחרות באופן פרוגרמטי: אחרי שיש לכם את אובייקט כלי לרישום ביומן, אתם יכולים גם לשנות באופן פרוגרמטי הגדרות רישום אחרות באמצעות מודול logging המובנה של Python. לדוגמה, כדי לשנות את רמת הרישום ל-DEBUG (שתוצג הודעות מפורטות יותר):

    logger.setLevel(logging.DEBUG)
    

רמות יומן

הלקוח יוצר יומנים בכמה רמות שונות, ואפשר להגדיר את ההגדרה כדי לראות חלק מהנתונים הבאים או את כולם:

רמה בקשה שאושרה הבקשה נכשלה
DEBUG יומן מפורט עם אובייקטים מלאים של בקשות ותגובות בפורמט JSON. יומן מפורט עם אובייקטים מלאים של בקשות וחריגים בפורמט JSON.
INFO סיכום תמציתי עם שדות ספציפיים של בקשות ותשובות. יומן מפורט עם אובייקטים מלאים של בקשות וחריגים בפורמט JSON.
WARNING ללא סיכום תמציתי עם פרטים ספציפיים על הבקשה, מצב החריגה וההודעה.

מכיוון שמסגרת הרישום של Python מתעלמת מהודעות יומן שהחומרה שלהן נמוכה מהרמה שהוגדרה, הגדרה של WARNING תגרום לכך שיוצגו רק הודעות תמציתיות שקשורות לבקשות שנכשלו, אבל הגדרה של DEBUG תגרום לכך שיוצגו כל סוגי היומנים האפשריים בטבלה שלמעלה.

רישום ביומן לקובץ

כשמריצים סקריפטים לדוגמה כמו get_campaigns.py משורת הפקודה, אפשר להפנות מחדש (או 'לשרשר') את כל הודעות היומן שמודפסות בדרך כלל במסוף לקובץ. זו תכונה של מעטפת מערכת ההפעלה, ולא של ספריית Python עצמה. לשם כך:

כדי לשמור פלט רגיל (רוב היומנים) בקובץ (תוך החלפת הקובץ):

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

יירוט של רישום ביומן

ספריית הלקוח של Python משתמשת במיירטים של gRPC כדי לגשת לפרטים של בקשות ותגובות ולרשום אותם ביומן. אתם יכולים להגדיר רישום משלכם ביומן על ידי יצירת gRPC interceptor עם לוגיקה מותאמת אישית. פרטים נוספים ודוגמה ל-interceptor מותאם אישית לרישום ביומן זמינים במדריך לרישום ביומן.