Die Bibliothek bietet vielseitige Logging-Funktionen für Google Ads API-Interaktionen. Sie können Folgendes erfassen:
- Detaillierte Informationen:Vollständige Anfragen, die an die API gesendet wurden, und empfangene Antworten.
- Kurze Zusammenfassungen:Allgemeine Übersichten über API-Interaktionen.
Sie können diese Logging-Einstellungen auf zwei Arten steuern:
- Clientbibliothekskonfiguration: Verwenden Sie die spezifischen
Konfigurationsoptionen der Bibliothek in Ihrer
google-ads.yamlDatei 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 folgende Schritte aus:
- Sie liest die von Ihnen angegebenen Logging-Einstellungen aus der Konfiguration.
- Sie übergibt diese Einstellungen an
logging.config.dictConfigvon Python, um sie zu aktivieren.
Sie können beispielsweise einen logging-Abschnitt in die Datei google-ads.yaml 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 logging-Abschnitt in der 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 Zielprotokollebene 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 lieber an die Standardfehlerausgabe (stderr) senden möchten, die 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)
Protokollebenen
Der Client generiert Logs auf verschiedenen 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 Log mit vollständigen Anfrage- und Antwortobjekten im JSON-Format. | Ein detailliertes Log mit vollständigen Anfrage- und Ausnahmeobjekten im JSON-Format. |
INFO |
Eine kurze Zusammenfassung mit bestimmten Anfrage- und Antwortfeldern. | Ein detailliertes Log mit vollständigen Anfrage- und Ausnahmeobjekten im JSON-Format. |
WARNING |
– | Eine kurze Zusammenfassung mit bestimmten Anfrageinformationen, dem Ausnahmezustand und der Fehlermeldung. |
Da das Python-Logging-Framework Logeinträge ignoriert, die weniger schwerwiegend sind als die konfigurierte Ebene, werden bei der Einstellung der Ebene auf WARNING nur kurze Meldungen für fehlgeschlagene Anfragen angezeigt. Wenn Sie die Ebene auf DEBUG setzen, werden alle in der Tabelle aufgeführten Logtypen angezeigt.
In eine Datei protokollieren
Sie können Logs entweder programmatisch in Python in eine Datei schreiben oder die Ausgabe über die Befehlszeile umleiten.
In Python in eine Datei protokollieren
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 mit der Shell umleiten
Wenn Sie Beispielskripts wie get_campaigns.py über
die Befehlszeile ausführen, können Sie die Konsolenlogausgabe mit der Shell Ihres
Betriebssystems in eine Datei umleiten.
So speichern Sie die Standardausgabe in einer Datei (dabei wird eine vorhandene Datei überschrieben):
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 die Standardfehlerausgabe (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-Interzeptoren
Die Python-Clientbibliothek verwendet gRPC Interzeptoren, um auf Anfrage- und Antwortdetails zuzugreifen und sie zu protokollieren. Sie können ein eigenes benutzerdefiniertes Logging einrichten, indem Sie einen gRPC-Interzeptor mit benutzerdefinierter Logik erstellen. Weitere Informationen und ein Beispiel für einen benutzerdefinierten Logging-Interzeptor finden Sie im Leitfaden zum Logging.