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

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

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

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

  • הגדרת ספריית הלקוח: משתמשים באפשרויות ההגדרה הספציפיות של הספרייה בקובץ google-ads.yaml או במשתני הסביבה.
  • באופן פרוגרמטי באמצעות Python: משתמשים במסגרת המובנית logging של Python לשליטה ישירה.

הגדרה באמצעות google-ads.yaml

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

לדוגמה, אפשר להוסיף קטע logging לקובץ google-ads.yaml:

logging:
  version: 1
  disable_existing_loggers: false
  formatters:
    default_fmt:
      format: '[%(asctime)s - %(levelname)s] %(message).5000s'
      datefmt: '%Y-%m-%d %H:%M:%S'
  handlers:
    default_handler:
      class: logging.StreamHandler
      formatter: default_fmt
  loggers:
    '':
      handlers: [default_handler]
      level: INFO

הגדרה פרוגרמטית

כשמשתמשים בספרייה כחבילה מותקנת בלי קטע logging בקובץ התצורה, אפשר לשלב את הרישום ביומן עם הגדרת הרישום ביומן של האפליקציה באופן פרוגרמטי. מצרפים handler לרישום ביומן למופע של logger בספרייה (google.ads.googleads.client) באמצעות addHandler ומגדירים את רמת היומן של היעד:

import logging
import sys

# Retrieve the library's logger instance.
logger = logging.getLogger("google.ads.googleads.client")

# Direct logs to standard output (stdout).
logger.addHandler(logging.StreamHandler(sys.stdout))

# Set the log level to DEBUG to view detailed messages.
logger.setLevel(logging.DEBUG)

אם אתם מעדיפים לשלוח יומנים לשגיאה סטנדרטית (stderr), שמשמשת לעיתים קרובות להודעות שגיאה ולאזהרות, מעבירים את sys.stderr אל logging.StreamHandler:

import logging
import sys

logger = logging.getLogger("google.ads.googleads.client")
logger.addHandler(logging.StreamHandler(sys.stderr))
logger.setLevel(logging.WARNING)

רמות הרישום ביומן

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

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

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

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

אפשר לכתוב יומנים לקובץ באופן פרוגרמטי ב-Python או על ידי הפניית פלט משורת הפקודה.

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

כדי לכתוב יומנים ישירות לקובץ מ-Python, צריך לצרף logging.FileHandler ל-logger של הלקוח:

import logging

logger = logging.getLogger("google.ads.googleads.client")
file_handler = logging.FileHandler("google_ads.log")
logger.addHandler(file_handler)
logger.setLevel(logging.INFO)

הפניה אוטומטית של פלט באמצעות המעטפת

כשמריצים סקריפטים לדוגמה כמו get_campaigns.py משורת הפקודה, אפשר להפנות את הפלט של יומן המסוף לקובץ באמצעות המעטפת של מערכת ההפעלה.

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

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

כדי להוסיף פלט סטנדרטי לקובץ קיים:

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

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

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

או ב-Bash 4+:‎

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

מיירטים מותאמים אישית של gRPC

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