La bibliothèque fournit une journalisation polyvalente pour les interactions avec l'API Google Ads. Vous pouvez capturer les éléments suivants :
- Informations détaillées : requêtes complètes envoyées à l'API et réponses reçues.
- Récapitulatifs concis : aperçus généraux des interactions avec l'API.
Vous pouvez contrôler ces paramètres de journalisation de deux manières :
- Configuration de la bibliothèque cliente : utilisez les options de configuration spécifiques de la bibliothèque dans votre
fichier ou vos variables d'environnement.
google-ads.yaml - Par programmation avec Python : utilisez le framework
loggingintégré de Python pour un contrôle direct.
Configurer via google-ads.yaml
La journalisation est configurée automatiquement lorsqu'une instance GoogleAdsClient est initialisée (par exemple, lorsque vous appelez load_from_storage). Lors de l'initialisation, la bibliothèque effectue les opérations suivantes :
- Elle lit les paramètres de journalisation spécifiés dans sa configuration.
- Elle transmet ces paramètres à
logging.config.dictConfigintégré de Python pour les activer.
Par exemple, vous pouvez ajouter une section logging à votre fichier google-ads.yaml :
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
Configurer par programmation
Lorsque vous utilisez la bibliothèque en tant que package installé sans section logging dans votre fichier de configuration, vous pouvez intégrer sa journalisation à la configuration de journalisation de votre application par programmation. Associez un gestionnaire de journalisation à l'instance de journalisation de la bibliothèque (google.ads.googleads.client) à l'aide de addHandler et
définissez le niveau de journalisation cible :
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)
Si vous préférez envoyer des journaux à l'erreur standard (stderr), qui est souvent utilisée pour
les messages d'erreur et les avertissements, transmettez sys.stderr à logging.StreamHandler :
import logging
import sys
logger = logging.getLogger("google.ads.googleads.client")
logger.addHandler(logging.StreamHandler(sys.stderr))
logger.setLevel(logging.WARNING)
Niveaux de journalisation
Le client génère des journaux à plusieurs niveaux de gravité, et vous pouvez configurer le journaliseur pour afficher tout ou partie des éléments suivants :
| Niveau | Requête réussie | Requête ayant échoué |
|---|---|---|
DEBUG |
Journal détaillé avec des objets de requête et de réponse complets au format JSON. | Journal détaillé avec des objets de requête et d'exception complets au format JSON. |
INFO |
Récapitulatif concis avec des champs de requête et de réponse spécifiques. | Journal détaillé avec des objets de requête et d'exception complets au format JSON. |
WARNING |
Aucun | Récapitulatif concis avec des informations de requête spécifiques, l'état de l'exception et le message d'erreur. |
Étant donné que le framework de journalisation Python ignore les messages de journal moins graves que le niveau configuré, si vous définissez le niveau sur WARNING, seuls les messages concis pour les requêtes ayant échoué s'affichent. En revanche, si vous définissez le niveau sur DEBUG, tous les types de journaux du tableau s'affichent.
Journaliser dans un fichier
Vous pouvez écrire des journaux dans un fichier par programmation en Python ou en redirigeant la sortie à partir de la ligne de commande.
Journaliser dans un fichier en Python
Pour écrire des journaux directement dans un fichier à partir de Python, associez un logging.FileHandler au journaliseur client :
import logging
logger = logging.getLogger("google.ads.googleads.client")
file_handler = logging.FileHandler("google_ads.log")
logger.addHandler(file_handler)
logger.setLevel(logging.INFO)
Rediriger la sortie à l'aide du shell
Lorsque vous exécutez des exemples de scripts tels que get_campaigns.py à partir de
la ligne de commande, vous pouvez rediriger la sortie du journal de la console vers un fichier à l'aide du
shell de votre système d'exploitation.
Pour enregistrer la sortie standard dans un fichier (en écrasant tout fichier existant) :
python get_campaigns.py -c $CUSTOMER_ID > campaign_logs.txt
Pour ajouter la sortie standard à un fichier existant :
python get_campaigns.py -c $CUSTOMER_ID >> campaign_logs.txt
Pour enregistrer la sortie standard et l'erreur standard (pour les erreurs et les avertissements) dans le même fichier :
python get_campaigns.py -c $CUSTOMER_ID > all_logs.txt 2>&1
Ou, sur Bash 4+ :
python get_campaigns.py -c $CUSTOMER_ID &> all_logs.txt
Intercepteurs gRPC personnalisés
La bibliothèque cliente Python utilise des intercepteurs gRPC pour accéder aux détails des requêtes et des réponses, et les enregistrer. Vous pouvez configurer votre propre journalisation personnalisée en créant un intercepteur gRPC avec une logique personnalisée. Pour en savoir plus et obtenir un exemple d' intercepteur de journalisation personnalisé, consultez le guide de journalisation.