Biblioteka zapewnia wszechstronne rejestrowanie interakcji z interfejsem Google Ads API. Możesz rejestrować:
- Szczegółowe informacje: pełne żądania wysyłane do interfejsu API i otrzymywane odpowiedzi.
- Krótkie podsumowania: ogólne informacje o interakcjach z interfejsem API.
Te ustawienia rejestrowania możesz kontrolować na 2 sposoby:
- Konfiguracja biblioteki klienta: użyj konkretnych
opcji konfiguracji biblioteki w pliku
google-ads.yamllub zmiennych środowiskowych. - Programowo w Pythonie: użyj wbudowanej platformy
loggingw Pythonie, aby mieć bezpośrednią kontrolę.
Konfigurowanie za pomocą pliku google-ads.yaml
Rejestrowanie jest konfigurowane automatycznie podczas inicjowania instancji GoogleAdsClient (na przykład podczas wywoływania funkcji load_from_storage). Podczas inicjowania biblioteka:
- odczytuje określone ustawienia rejestrowania z jego konfiguracji.
- przekazuje te ustawienia do wbudowanej funkcji w Pythonie
logging.config.dictConfig, aby je aktywować.
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 programowe
Jeśli używasz biblioteki jako zainstalowanego pakietu bez sekcji logging w pliku konfiguracyjnym, możesz programowo zintegrować jej rejestrowanie z konfiguracją rejestrowania aplikacji. Dołącz moduł obsługi rejestrowania do instancji rejestratora biblioteki (google.ads.googleads.client) za pomocą funkcji addHandler i
ustaw docelowy poziom rejestrowania:
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ć dzienniki do standardowego strumienia błędów (stderr), który jest często używany w przypadku 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 rejestrowania
Klient generuje dzienniki na kilku poziomach ważności. Możesz skonfigurować rejestrator tak, aby wyświetlał niektóre lub wszystkie z tych poziomów:
| Poziom | Żądanie zakończone powodzeniem | 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 |
Krótkie podsumowanie z konkretnymi polami żądań i odpowiedzi. | Szczegółowy dziennik z pełnymi obiektami żądań i wyjątków w formacie JSON. |
WARNING |
Brak | Krótkie podsumowanie z konkretnymi informacjami o żądaniu, stanem wyjątku i komunikatem o błędzie. |
Ponieważ platforma rejestrowania w Pythonie ignoruje komunikaty logu, które są mniej poważne niż skonfigurowany poziom, ustawienie poziomu na WARNING powoduje wyświetlanie tylko krótkich komunikatów o nieudanych żądaniach, a ustawienie poziomu na DEBUG powoduje wyświetlanie wszystkich typów dzienników w tabeli.
Rejestrowanie w pliku
Dzienniki możesz zapisywać w pliku programowo w Pythonie lub przekierowując dane wyjściowe z wiersza poleceń.
Rejestrowanie w pliku w Pythonie
Aby zapisywać dzienniki bezpośrednio w pliku z poziomu 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 skrypty przykładowe, 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 w 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ć zarówno standardowe dane wyjściowe, jak i standardowe wyjście 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
Lub w powłoce bash w wersji 4 lub nowszej:
python get_campaigns.py -c $CUSTOMER_ID &> all_logs.txt
Niestandardowe interceptory 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 rejestrowanie niestandardowe, tworząc interceptor gRPC z niestandardową logiką. Więcej informacji i przykład niestandardowego interceptora rejestrowania znajdziesz w przewodniku Rejestrowanie.