Włącz logowanie

Biblioteka udostępnia wszechstronne funkcje rejestrowania interakcji z interfejsem Google Ads API. Możesz nagrywać:

  • Szczegółowe informacje: pełne żądania wysłane do interfejsu API i otrzymane odpowiedzi.
  • Zwięzłe podsumowania: ogólne omówienie interakcji z interfejsem API.

Ustawieniami logowania możesz zarządzać na 2 sposoby:

  • Konfiguracja biblioteki klienta: użyj opcji konfiguracji biblioteki w pliku google-ads.yaml lub zmiennych środowiskowych.
  • Automatycznie za pomocą Pythona: użyj wbudowanej platformy logging Pythona, aby uzyskać bezpośrednią kontrolę.

Konfiguracja za pomocą google-ads.yaml

Logowanie jest konfigurowane automatycznie po zainicjowaniu instancji GoogleAdsClient (np. gdy wywołasz load_from_storage). Podczas inicjowania biblioteka:

Możesz na przykład dodać sekcję logging do pliku 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

Konfigurowanie automatyczne

Jeśli używasz biblioteki jako zainstalowanego pakietu bez sekcji logging w pliku konfiguracji, możesz zintegrować jej logowanie z konfiguracją logowania aplikacji w sposób zautomatyzowany. Dołącz moduł obsługi logowania do instancji loggera biblioteki (google.ads.googleads.client) za pomocą addHandler i ustaw docelowy poziom logowania:

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)

Jeśli wolisz wysyłać logi do standardowego strumienia błędów (stderr), który jest często używany do komunikatów o błędach i ostrzeżeń, przekaż sys.stderr do logging.StreamHandler:

import logging
import sys

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

Poziomy logowania

Klient generuje logi na kilku poziomach ważności. Możesz skonfigurować rejestrator, aby wyświetlać niektóre lub wszystkie z tych informacji:

Poziom Prośba została zrealizowana Nieudane żądanie
DEBUG Szczegółowy dziennik z pełnymi obiektami żądań i odpowiedzi w formacie JSON. Szczegółowy dziennik z pełnymi obiektami żądań i wyjątków w formacie JSON.
INFO Zwięzłe podsumowanie z konkretnymi polami żądania i odpowiedzi. Szczegółowy dziennik z pełnymi obiektami żądań i wyjątków w formacie JSON.
WARNING Brak Zwięzłe podsumowanie z konkretnymi informacjami o żądaniu, stanem wyjątku i komunikatem o błędzie.

Ponieważ platforma logowania w Pythonie ignoruje komunikaty logu, które są mniej poważne niż skonfigurowany poziom, ustawienie poziomu na WARNING powoduje wyświetlanie tylko zwięzłych komunikatów o nieudanych żądaniach, a ustawienie poziomu na DEBUG powoduje wyświetlanie wszystkich typów logów w tabeli.

Zapisywanie logów w pliku

Logi możesz zapisywać w pliku programowo w języku Python lub przez przekierowanie danych wyjściowych z wiersza poleceń.

Zapisywanie logów w pliku w Pythonie

Aby zapisywać logi bezpośrednio w pliku z Pythona, dołącz logging.FileHandler do rejestratora klienta:

import logging

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

Przekierowywanie danych wyjściowych za pomocą powłoki

Gdy uruchamiasz przykładowe skrypty, takie jak get_campaigns.py, z wiersza poleceń, możesz przekierować dane wyjściowe dziennika konsoli do pliku za pomocą powłoki systemu operacyjnego.

Aby zapisać standardowy strumień wyjścia do pliku (zastępując istniejący plik):

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

Aby dołączyć standardowy strumień wyjścia do istniejącego pliku:

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

Aby zapisać standardowy strumień wyjścia i standardowy strumień błędów (w przypadku błędów i ostrzeżeń) w tym samym pliku:

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

Możesz też użyć Bash 4+:

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

Niestandardowe przechwytywacze gRPC

Biblioteka klienta w Pythonie używa interceptorów gRPC do uzyskiwania dostępu do szczegółów żądań i odpowiedzi oraz do ich rejestrowania. Możesz skonfigurować własne niestandardowe logowanie, tworząc przechwytywacz gRPC z niestandardową logiką. Więcej informacji i przykład niestandardowego przechwytywacza logowania znajdziesz w przewodniku po logowaniu.