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:
- Odczytaj określone ustawienia logowania z konfiguracji.
- Przekaż te ustawienia do wbudowanej funkcji Pythona
logging.config.dictConfig
, aby je aktywować.
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.