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:
- odczyta określone ustawienia logowania z jego konfiguracji;
- przekaże te ustawienia do wbudowanej w Pythona funkcji
logging.config.dictConfigaby je aktywować.
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.