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

הספרייה מספקת רישום מגוון של אינטראקציות עם 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 של הספרייה, אפשר להגדיר לו לאן להוציא את הודעות היומן.

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