Włącz Logging

Biblioteka zapewnia wszechstronne logowanie interakcji z interfejsem Google Ads API. Możesz rejestrować:

  • szczegółowe informacje – pełne żądania wysyłane do interfejsu API i otrzymywane odpowiedzi;
  • zwięzłe podsumowania – ogólny przegląd interakcji.

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

  • Konfiguracja biblioteki klienta – użyj konkretnych opcji konfiguracji biblioteki.
  • Programowo w Pythonie – użyj wbudowanej w Pythona platformy logowania, aby uzyskać bardziej bezpośrednią kontrolę.

Logowanie jest konfigurowane automatycznie podczas inicjowania instancji GoogleAdsClient. Ten krok inicjowania występuje np. podczas korzystania z metody load_from_storage. W tym momencie biblioteka:

Gdy ta biblioteka jest używana jako zainstalowany pakiet, musisz zintegrować jej logowanie z konfiguracją logowania aplikacji. W szczególności musisz dodać moduł obsługi logowania do własnej instancji rejestratora biblioteki za pomocą addHandler metody. Ten moduł obsługi będzie określać, gdzie mają być kierowane komunikaty dziennika biblioteki (np. do konsoli, pliku itp.). Aby to zrobić, najpierw pobierz instancję rejestratora biblioteki, jak pokazano tutaj:

import logging

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

Po pobraniu rejestratora biblioteki możesz określić, gdzie mają być zapisywane komunikaty dziennika.

  • Wysyłanie logów do konsoli: aby wyświetlać komunikaty dziennika w konsoli, dodaj podstawowy moduł obsługi. Oto jak kierować logi do standardowego wyjścia (stdout):

    A oto jak ustawić podstawowy moduł obsługi, który będzie informować rejestratora o drukowaniu na stdout:

    import sys
    
    # Assuming 'logger' was retrieved as per previous instructions
    logger.addHandler(logging.StreamHandler(sys.stdout))
    

    Jeśli wolisz wysyłać logi do standardowego wyjścia błędów (stderr), które jest często używane w przypadku komunikatów o błędach i ostrzeżeń:

    import sys
    
    # Assuming 'logger' was retrieved as per previous instructions
    logger.addHandler(logging.StreamHandler(sys.stderr))
    
  • Programowe konfigurowanie innych ustawień logowania: gdy masz już obiekt rejestratora, możesz też programowo zmieniać inne ustawienia logowania za pomocą wbudowanego w Pythona modułu logowania. Aby na przykład zmienić poziom logowania na DEBUG (co spowoduje wyświetlanie bardziej szczegółowych komunikatów):

    logger.setLevel(logging.DEBUG)
    

Poziomy rejestrowania

Klient generuje logi na kilku różnych poziomach. Możesz skonfigurować ustawienia tak, aby wyświetlać niektóre lub wszystkie z nich:

Poziom Żądanie zrealizowane 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 żądań 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.

Ponieważ framework logowania w Pythonie ignoruje komunikaty dziennika, które są mniej poważne niż skonfigurowany poziom, ustawienie WARNING oznacza, że będziesz widzieć tylko zwięzłe komunikaty związane z nieudanymi żądaniami. Ustawienie DEBUG oznacza, że będziesz widzieć wszystkie możliwe typy logów z tabeli powyżej.

Logowanie do pliku

Gdy uruchamiasz przykładowe skrypty, takie jak get_campaigns.py z wiersza poleceń, wszystkie komunikaty dziennika zwykle drukowane w konsoli mogą zostać przekierowane (lub „przekazane”) do pliku. Jest to funkcja powłoki systemu operacyjnego, a nie samej biblioteki Pythona. Oto jak to zrobić:

Aby zapisać standardowe wyjście (większość logów) w pliku (zastępując go):

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

Aby dołączyć standardowe wyjście do pliku:

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

Aby zapisać zarówno standardowe wyjście, 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 $CLIENT_ID > all_logs.txt 2>&1

(lub w niektórych nowoczesnych powłokach, np. Bash 4+):

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

Interceptory logowania

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