Configurer Cloud Logging pour Python

Vous pouvez écrire des journaux dans Logging depuis des applications Python grâce au gestionnaire de journalisation Python inclus dans la bibliothèque cliente Logging, ou directement à l'aide de la bibliothèque cliente de l'API Cloud Logging pour Python.

Avant de commencer

  1. Connectez-vous à votre compte Google.

    Si vous n'en possédez pas déjà un, vous devez en créer un.

  2. Dans Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Cloud.

    Accéder à la page de sélection du projet

  3. Vérifiez que la facturation est activée pour votre projet Google Cloud. Découvrez comment vérifier que la facturation est activée pour votre projet.

  4. Activez Cloud Logging API.

    Activer l'API

  5. Préparez l'environnement au développement de Python.

    Accéder au guide de configuration de Python

Installer la bibliothèque

Pour installer la bibliothèque Cloud Logging pour Python, consultez la section Installer la bibliothèque cliente.

Une fois installée, cette bibliothèque inclut des gestionnaires de journalisation servant à connecter le module de journalisation standard de Python à Logging, ainsi qu'une bibliothèque cliente des API permettant d'accéder manuellement à Cloud Logging.

Connecter la bibliothèque à la journalisation Python

Pour envoyer toutes les entrées de journal à Cloud Logging en associant le gestionnaire Cloud Logging à l'enregistreur racine Python, utilisez la méthode d'assistance setup_logging :

# Imports the Cloud Logging client library
import google.cloud.logging

# Instantiates a client
client = google.cloud.logging.Client()

# Retrieves a Cloud Logging handler based on the environment
# you're running in and integrates the handler with the
# Python logging module. By default this captures all logs
# at INFO level and higher
client.get_default_handler()
client.setup_logging()

Utiliser l'enregistreur racine Python

Une fois le gestionnaire associé, tous les journaux émis dans votre application qui ont par défaut un niveau supérieur ou égal à INFO sont envoyés à Logging :

# Imports Python standard library logging
import logging

# The data to log
text = 'Hello, world!'

# Emits the data using the standard logging module
logging.warning(text)

Si des messages sont consignés dans Logging depuis App Engine ou Google Kubernetes Engine, le gestionnaire les envoie aux types de ressources respectifs de ces environnements. Sinon, les journaux apparaissent par défaut sous le journal python du type de ressource Global.

Configurer le gestionnaire de journalisation

Pour lier le gestionnaire de journalisation Cloud Logging afin de sélectionner uniquement des enregistreurs Python ou pour simplement configurer le gestionnaire de journalisation, consultez la documentation de la bibliothèque d'API.

Pour plus d'informations sur l'installation, consultez la documentation de la bibliothèque Cloud Logging pour Python. Vous pouvez également signaler d'éventuels problèmes à l'aide de l'outil de suivi des problèmes.

Utiliser directement la bibliothèque cliente cloud

Pour plus d'informations sur l'utilisation directe de la bibliothèque cliente Cloud Logging pour Python, consultez la documentation Bibliothèques clientes Cloud Logging.

Exécuter des applications sur Google Cloud

L'utilisation de la bibliothèque Cloud Logging pour Python nécessite le rôle Cloud IAM de Rédacteur de journaux sur Google Cloud. La plupart des environnements Google Cloud fournissent ce rôle par défaut.

App Engine

Par défaut, App Engine attribue le rôle Rédacteur de journaux.

La bibliothèque Cloud Logging pour Python peut être utilisée sans avoir à fournir explicitement des identifiants.

Cloud Logging est automatiquement activé pour les applications App Engine. Aucune configuration supplémentaire n'est requise.

Google Kubernetes Engine

Sur Google Kubernetes Engine, vous devez ajouter le niveau d'accès logging.write lors de la création du cluster :

gcloud container clusters create example-cluster-name --scopes https://www.googleapis.com/auth/logging.write

Compute Engine

Lorsque vous utilisez des instances de VM Compute Engine, ajoutez le niveau d'accès cloud-platform à chaque instance. Lorsque vous créez une instance via Google Cloud Console, vous pouvez le faire dans la section Identité et accès à l'API du panneau Créer une instance. Utilisez le compte de service par défaut de Compute Engine ou un autre compte de service de votre choix, puis sélectionnez Autoriser l'accès complet à l'ensemble des API Cloud dans la section Identité et accès à l'API. Quel que soit le compte de service sélectionné, vérifiez qu'il dispose du rôle Rédacteur de journaux dans la section IAM et administration de Cloud Console.

Exécuter en local et depuis un autre emplacement

Pour utiliser la bibliothèque Cloud Logging pour Python en dehors de Google Cloud, y compris en l'exécutant sur votre propre poste de travail, sur les ordinateurs de votre centre de données ou sur les instances de VM d'un autre fournisseur cloud, vous devez saisir l'ID de votre projet Google Cloud ainsi que les identifiants du compte de service approprié directement dans la bibliothèque Cloud Logging pour Python.

Vous pouvez créer et obtenir manuellement des identifiants pour le compte de service. Lorsque vous spécifiez le champ Rôle, utilisez le rôle Rédacteur de journaux. Pour en savoir plus sur les rôles dans Cloud Identity and Access Management, consultez le Guide du contrôle des accès.

Afficher les journaux

Après le déploiement, vous pouvez afficher les journaux dans la visionneuse de journaux de Cloud Console.

Accéder à la visionneuse de journaux

Dans la visionneuse de journaux, vous devez spécifier une ou plusieurs ressources, mais la sélection de ces dernières peut ne pas être évidente. Voici quelques conseils pour vous aider à faire vos premiers pas :

  • Si vous déployez votre application sur App Engine ou utilisez les bibliothèques propres à App Engine, définissez votre ressource sur Application GAE.

  • Si vous déployez votre application sur Compute Engine, définissez la ressource sur Instance de VM GCE.

  • Si vous déployez votre application sur Google Kubernetes Engine, la configuration de la journalisation de votre cluster détermine le type de ressource des entrées de journal. Pour en savoir plus sur l'ancienne suite d'opérations Google Cloud et sur les solutions Kubernetes Monitoring de la suite d'opérations Google Cloud, ainsi que sur l'incidence de ces options sur le type de ressource, consultez la page Migrer vers les solutions Kubernetes Monitoring de la suite d'opérations Google Cloud.

  • Si votre application utilise directement l'API Cloud Logging, la ressource dépend de l'API et de votre configuration. Par exemple, dans votre application, vous pouvez spécifier une ressource ou utiliser une ressource par défaut.

  • Si aucun journal ne s'affiche dans la visionneuse de journaux, passez en mode de requête avancée et utilisez une requête vide pour voir toutes les entrées de journal.

    1. Pour passer en mode de requête avancée, cliquez sur le menu (▾) en haut de la visionneuse de journaux, puis sélectionnez Convertir en filtre avancé.
    2. Effacez le contenu qui apparaît dans le champ de filtre.
    3. Cliquez sur Envoyer le filtre.

    Vous pouvez examiner les entrées individuelles pour identifier vos ressources.

Pour obtenir plus d'informations, consultez les sections Afficher les journaux et Requêtes de journaux avancées.