Włącz Logging

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

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

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

  • Konfiguracja biblioteki klienta: użyj opcji konfiguracji specyficznych dla biblioteki.
  • Programowo w Pythonie: użyj wbudowanej platformy rejestrowania w Pythonie, aby mieć większą kontrolę.

Rejestrowanie jest konfigurowane automatycznie podczas inicjowania instancji GoogleAdsClient. Ten krok inicjowania następuje na przykład, gdy używasz metody load_from_storage. W tym momencie biblioteka:

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

import logging

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

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

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

    Oto jak ustawić podstawowy moduł obsługi, który będzie informować rejestratora o drukowaniu w 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))
    
  • Konfigurowanie innych ustawień rejestrowania za pomocą kodu: gdy masz już obiekt rejestratora, możesz też programowo zmieniać inne ustawienia rejestrowania za pomocą wbudowanego modułu logging w Pythonie. 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, 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 Krótkie podsumowanie z określonymi polami żądania i odpowiedzi. Szczegółowy dziennik z pełnymi obiektami żądań i wyjątków w formacie JSON.
WARNING Brak Krótkie podsumowanie z informacjami o konkretnym żądaniu, stanie wyjątku i komunikacie.

Framework logowania w Pythonie ignoruje komunikaty logowania, które są mniej istotne niż skonfigurowany poziom, więc ustawienie WARNING oznacza, że będziesz widzieć tylko zwięzłe komunikaty związane z nieudanymi żądaniami, a ustawienie DEBUG oznacza, że w tabeli powyżej zobaczysz wszystkie możliwe typy logów.

Logowanie do pliku

Gdy uruchamiasz przykładowe skrypty, takie jak get_campaigns.py z wiersza poleceń, wszystkie komunikaty dziennika zwykle drukowane w konsoli można przekierować (lub „przesłać”) do pliku. Jest to funkcja powłoki systemu operacyjnego, a nie samej biblioteki Pythona. Aby to zrobić:

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

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

Aby dołączyć standardowe dane wyjściowe do pliku:

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

Aby zapisać zarówno standardowe dane wyjściowe, jak i standardowe dane o błędach (w przypadku błędów lub ostrzeżeń) w tym samym pliku:

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

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

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

Przechwytywacze logowania

Biblioteka klienta w języku Python 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 interfejs gRPC z niestandardową logiką. Więcej informacji i przykład niestandardowego interfejsu przechwytującego rejestrowanie znajdziesz w przewodniku po rejestrowaniu.