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ésumés concis: présentation générale des interactions.
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.
- De manière programmatique avec Python: utilisez le framework de journalisation intégré de Python pour un contrôle plus direct.
La journalisation est configurée automatiquement lorsqu'une instance GoogleAdsClient
est initialisée. Cette étape d'initialisation se produit, par exemple, lorsque vous utilisez la méthode load_from_storage
. À ce stade, la bibliothèque:
- Lisez les paramètres de journalisation que vous avez spécifiés dans sa configuration.
- Transmettez ces paramètres à
logging.config.dictConfig
intégré à Python pour les activer.
Lorsque cette bibliothèque est utilisée en tant que package installé, vous devez intégrer sa journalisation à la configuration de journalisation de votre application. Plus précisément, vous devez ajouter un gestionnaire de journalisation à l'instance de journalisation de la bibliothèque avec la méthode addHandler
. Ce gestionnaire déterminera l'emplacement des messages de journal de la bibliothèque (par exemple, vers la console, un fichier, etc.). Pour ce faire, récupérez d'abord l'instance du journal de la bibliothèque, comme indiqué ci-dessous:
import logging
logger = logging.getLogger('google.ads.googleads.client')
Après avoir récupéré le journal de la bibliothèque, vous pouvez lui indiquer où envoyer les messages de journalisation.
Envoi de journaux à la console: pour afficher les messages de journal dans votre console, vous devez ajouter un gestionnaire de base. Pour rediriger les journaux vers la sortie standard (
stdout
), procédez comme suit :Voici comment définir un gestionnaire de base qui indiquera au journalisateur d'imprimer dans
stdout
:import sys # Assuming 'logger' was retrieved as per previous instructions logger.addHandler(logging.StreamHandler(sys.stdout))
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:import sys # Assuming 'logger' was retrieved as per previous instructions logger.addHandler(logging.StreamHandler(sys.stderr))
Configuration d'autres paramètres de journalisation de manière programmatique: une fois que vous disposez de l'objet journaliseur, vous pouvez également modifier d'autres paramètres de journalisation de manière programmatique à l'aide du module de journalisation intégré de Python. Par exemple, pour définir le niveau de journalisation sur
DEBUG
(qui affichera des messages plus détaillés):logger.setLevel(logging.DEBUG)
Niveaux de journalisation
Le client génère des journaux à plusieurs niveaux. Vous pouvez configurer votre configuration pour afficher tout ou partie des éléments suivants:
Niveau | Demande réussie | Échec de la demande |
---|---|---|
DEBUG |
Journal détaillé contenant 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ésumé 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ésumé concis contenant des informations spécifiques sur la requête, l'état de l'exception et le message. |
Étant donné que le framework de journalisation Python ignore les messages de journalisation moins graves que le niveau configuré, la valeur WARNING
signifie que vous ne verrez que des messages concis liés aux requêtes ayant échoué. En revanche, la valeur DEBUG
signifie que vous verrez tous les types de journaux possibles dans le tableau ci-dessus.
Journalisation dans un fichier
Lorsque vous exécutez des exemples de scripts tels que get_campaigns.py
à partir de votre ligne de commande, tous les messages de journal généralement affichés dans la console peuvent être redirigés (ou "canalisés") vers un fichier. Il s'agit d'une fonctionnalité du shell de votre système d'exploitation, et non de la bibliothèque Python elle-même. Voici comment procéder :
Pour enregistrer la sortie standard (la plupart des journaux) dans un fichier (en le remplaçant):
python get_campaigns.py -c $CLIENT_ID > campaign_logs.txt
Pour ajouter la sortie standard à un fichier:
python get_campaigns.py -c $CLIENT_ID >> campaign_logs.txt
Pour enregistrer à la fois la sortie standard et l'erreur standard (pour les erreurs/avertissements) dans le même fichier:
python get_campaigns.py -c $CLIENT_ID > all_logs.txt 2>&1
(ou, sur certains shells modernes comme Bash 4 et versions ultérieures):
python get_campaigns.py -c $CLIENT_ID &> all_logs.txt
Intercepteurs de journalisation
La bibliothèque cliente Python utilise des intercepteurs gRPC pour accéder aux informations de requête et de réponse, et les consigner. 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.