Die Bibliothek bietet vielseitige Logging-Funktionen für Interaktionen mit der Google Ads API. Sie können Folgendes erfassen:
- Detaillierte Informationen: Vollständige Anfragen, die an die API gesendet wurden, und empfangene Antworten.
- Prägnante Zusammenfassungen: Allgemeine Übersichten über API-Interaktionen.
Sie können diese Logging-Einstellungen auf zwei Arten steuern:
- Konfiguration der Clientbibliothek: Verwenden Sie die spezifischen Konfigurationsoptionen der Bibliothek in Ihrer
google-ads.yaml-Datei oder in Umgebungsvariablen. - Programmatisch mit Python: Verwenden Sie das integrierte
logging-Framework von Python für die direkte Steuerung.
Über google-ads.yaml konfigurieren
Das Logging wird automatisch konfiguriert, wenn eine GoogleAdsClient-Instanz initialisiert wird (z. B. wenn Sie load_from_storage aufrufen). Bei der Initialisierung führt die Bibliothek Folgendes aus:
- Liest die von Ihnen angegebenen Logging-Einstellungen aus der Konfiguration.
- Übergibt diese Einstellungen an das integrierte
logging.config.dictConfigvon Python, um sie zu aktivieren.
Sie können beispielsweise einen logging-Abschnitt in Ihre google-ads.yaml-Datei einfügen:
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
Programmatisch konfigurieren
Wenn Sie die Bibliothek als installiertes Paket ohne den Abschnitt logging in Ihrer Konfigurationsdatei verwenden, können Sie das Logging programmatisch in die Logging-Einrichtung Ihrer Anwendung einbinden. Hängen Sie mit addHandler einen Logging-Handler an die Logger-Instanz der Bibliothek (google.ads.googleads.client) an und legen Sie die Ziel-Logebene fest:
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)
Wenn Sie Logs an den Standardfehler (stderr) senden möchten, der häufig für Fehlermeldungen und Warnungen verwendet wird, übergeben Sie sys.stderr an logging.StreamHandler:
import logging
import sys
logger = logging.getLogger("google.ads.googleads.client")
logger.addHandler(logging.StreamHandler(sys.stderr))
logger.setLevel(logging.WARNING)
Logebenen
Der Client generiert Logs mit mehreren Schweregraden. Sie können den Logger so konfigurieren, dass einige oder alle der folgenden Informationen angezeigt werden:
| Level | Erfolgreiche Anfrage | Fehlgeschlagene Anfrage |
|---|---|---|
DEBUG |
Ein detailliertes Protokoll mit vollständigen Anfrage- und Antwortobjekten als JSON. | Ein detailliertes Log mit vollständigen Anfrage- und Ausnahmeobjekten als JSON. |
INFO |
Eine prägnante Zusammenfassung mit bestimmten Anfrage- und Antwortfeldern. | Ein detailliertes Log mit vollständigen Anfrage- und Ausnahmeobjekten als JSON. |
WARNING |
– | Eine kurze Zusammenfassung mit spezifischen Anfrageinformationen, dem Ausnahmestatus und der Fehlermeldung. |
Da das Python-Logging-Framework Logeinträge ignoriert, die weniger schwerwiegend sind als die konfigurierte Ebene, werden bei der Einstellung WARNING nur kurze Meldungen für fehlgeschlagene Anfragen angezeigt. Bei der Einstellung DEBUG werden dagegen alle Logtypen in der Tabelle angezeigt.
In einer Datei protokollieren
Sie können Logs entweder programmatisch in Python oder durch Weiterleiten der Ausgabe über die Befehlszeile in eine Datei schreiben.
In Python in eine Datei loggen
Wenn Sie Logs direkt aus Python in eine Datei schreiben möchten, hängen Sie einen logging.FileHandler an den Client-Logger an:
import logging
logger = logging.getLogger("google.ads.googleads.client")
file_handler = logging.FileHandler("google_ads.log")
logger.addHandler(file_handler)
logger.setLevel(logging.INFO)
Ausgabe mithilfe der Shell umleiten
Wenn Sie Beispielskripts wie get_campaigns.py über die Befehlszeile ausführen, können Sie die Ausgabe des Console-Logs mit der Shell Ihres Betriebssystems in eine Datei umleiten.
So speichern Sie die Standardausgabe in einer Datei (wobei eine vorhandene Datei überschrieben wird):
python get_campaigns.py -c $CUSTOMER_ID > campaign_logs.txt
So hängen Sie die Standardausgabe an eine vorhandene Datei an:
python get_campaigns.py -c $CUSTOMER_ID >> campaign_logs.txt
So speichern Sie sowohl die Standardausgabe als auch den Standardfehler (für Fehler und Warnungen) in derselben Datei:
python get_campaigns.py -c $CUSTOMER_ID > all_logs.txt 2>&1
Oder in Bash 4+:
python get_campaigns.py -c $CUSTOMER_ID &> all_logs.txt
Benutzerdefinierte gRPC-Interceptors
Die Python-Clientbibliothek verwendet gRPC-Interceptors, um auf Anfrage- und Antwortdetails zuzugreifen und diese zu protokollieren. Sie können ein eigenes benutzerdefiniertes Logging einrichten, indem Sie einen gRPC-Interceptor mit benutzerdefinierter Logik erstellen. Weitere Informationen und ein Beispiel für einen benutzerdefinierten Logging-Interceptor finden Sie im Logging-Leitfaden.