Logging aktivieren

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: Eine allgemeine Übersicht über die Interaktionen.

Sie haben zwei Möglichkeiten, diese Logging-Einstellungen zu steuern:

  • Konfiguration der Clientbibliothek: Verwenden Sie die spezifischen Konfigurationsoptionen der Bibliothek.
  • Programmatisch mit Python: Verwenden Sie das integrierte Logging-Framework von Python, um die Einstellungen direkter zu steuern.

Das Logging wird automatisch konfiguriert, wenn eine GoogleAdsClient-Instanz initialisiert wird. Dieser Initialisierungsschritt erfolgt beispielsweise, wenn Sie die Methode load_from_storage verwenden. An diesem Punkt führt die Bibliothek folgende Schritte aus:

Wenn diese Bibliothek als installiertes Paket verwendet wird, müssen Sie das Logging in die Logging-Einrichtung Ihrer Anwendung einbinden. Insbesondere müssen Sie der eigenen Logger-Instanz der Bibliothek mit der addHandler Methode einen Logging-Handler hinzufügen. Dieser Handler bestimmt, wohin die Logmeldungen der Bibliothek weitergeleitet werden (z. B. an die Konsole oder eine Datei). Rufen Sie dazu zuerst die Logger-Instanz der Bibliothek ab, wie hier gezeigt:

import logging

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

Nachdem Sie den Logger der Bibliothek abgerufen haben, können Sie festlegen, wo Logmeldungen ausgegeben werden sollen.

  • Logs an die Konsole senden: Wenn Sie Logmeldungen in der Konsole anzeigen möchten, fügen Sie einen einfachen Handler hinzu. So leiten Sie Logs an die Standardausgabe (stdout) weiter:

    So legen Sie einen einfachen Handler fest, der den Logger anweist, in stdout auszugeben:

    import sys
    
    # Assuming 'logger' was retrieved as per previous instructions
    logger.addHandler(logging.StreamHandler(sys.stdout))
    

    Wenn Sie Logs lieber an die Standardfehlerausgabe (stderr) senden möchten, die häufig für Fehlermeldungen und Warnungen verwendet wird:

    import sys
    
    # Assuming 'logger' was retrieved as per previous instructions
    logger.addHandler(logging.StreamHandler(sys.stderr))
    
  • Andere Logging-Einstellungen programmatisch konfigurieren: Sobald Sie das Logger-Objekt haben, können Sie auch andere Logging-Einstellungen programmatisch mit dem integrierten Logging -Modul von Python ändern. So ändern Sie beispielsweise die Logging-Ebene in DEBUG (wodurch detailliertere Meldungen angezeigt werden):

    logger.setLevel(logging.DEBUG)
    

Protokollebenen

Der Client generiert Logs auf verschiedenen Ebenen. Sie können Ihre Konfiguration so festlegen, dass einige oder alle der folgenden Logs angezeigt werden:

Ebene Erfolgreiche Anfrage Fehlgeschlagene Anfrage
DEBUG Ein detailliertes Log mit vollständigen Anfrage- und Antwortobjekten als JSON. Ein detailliertes Log mit vollständigen Anfrage- und Ausnahmeobjekten als JSON.
INFO Eine kurze Zusammenfassung mit bestimmten Anfrage- und Antwortfeldern. Ein detailliertes Log mit vollständigen Anfrage- und Ausnahmeobjekten als JSON.
WARNING Keine Eine kurze Zusammenfassung mit bestimmten Anfrageinformationen, dem Ausnahmezustand und der Ausnahmenachricht.

Da das Python-Logging-Framework Logmeldungen ignoriert, die weniger schwerwiegend sind als die konfigurierte Ebene, bedeutet die Einstellung WARNING, dass nur kurze Meldungen zu fehlgeschlagenen Anfragen angezeigt werden. Wenn Sie jedoch DEBUG festlegen, werden alle möglichen Logtypen in der obigen Tabelle angezeigt.

In eine Datei loggen

Wenn Sie Beispielskripts wie get_campaigns.py über die Befehlszeile ausführen, können alle Logmeldungen, die normalerweise in der Konsole ausgegeben werden, in eine Datei umgeleitet werden. Dies ist eine Funktion der Shell Ihres Betriebssystems, nicht der Python-Bibliothek selbst. So gehts:

So speichern Sie die Standardausgabe (die meisten Logs) in einer Datei und überschreiben sie dabei:

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

So hängen Sie die Standardausgabe an eine Datei an:

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

So speichern Sie sowohl die Standardausgabe als auch die Standardfehlerausgabe (für Fehler/Warnungen) in derselben Datei:

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

Oder in einigen modernen Shells wie Bash 4+:

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

Logging-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 Logging Leitfaden.