Travailler avec des points de journalisation

Après avoir configuré le débogage dans Cloud Debugger et déployé ou démarré votre application, vous pouvez ajouter des points de journalisation dans la console source.

Présentation des points de journalisation

Les points de journalisation vous permettent d'injecter une journalisation dans les services en cours d'exécution sans avoir besoin de les redémarrer et sans interférer avec leur fonctionnement normal. Chaque fois qu'une instance exécute du code à l'emplacement du point de journalisation, Debugger consigne un message. La sortie du point de journalisation est envoyée au journal approprié pour l'environnement cible. Pour App Engine, par exemple, la sortie est envoyée au journal de requêtes dans Cloud Logging.

Les points de journalisation restent actifs pendant 24 heures après leur création, ou jusqu'à ce qu'ils soient supprimés ou que le service soit redéployé.

Ajouter un point de journalisation de débogage

  1. Dans Google Cloud Console, ouvrez Cloud Source Repositories.

    Ouvrir Cloud Source Repositories

    La page Tous les dépôts s'affiche. Vous pouvez également ouvrir la vue Ma source.

  2. Cliquez sur le nom d'un dépôt.

  3. Accédez au fichier contenant le code source que vous souhaitez consulter.

  4. Cliquez sur le numéro de ligne de l'emplacement du code source.

    Sélectionner l'emplacement du point de journalisation

  5. Lorsque vous y êtes invité, sélectionnez l'application à laquelle vous souhaitez ajouter le point de journalisation.

    Sélectionner une application pour le point de journalisation

  6. Cliquez sur Créer un point de journalisation.

    Créer un point de journalisation

  7. Lorsque vous y êtes invité, saisissez la condition et le message du point de journalisation.

    Créer un point de journalisation

  8. Cliquez sur Ajouter.

    Après l'ajout d'un point de journalisation, l'expression apparaît de manière intégrée dans la vue "Fichier" de la console source. Pour modifier le point de journalisation, maintenez le pointeur de la souris dessus et cliquez sur Modifier .

Conditions du point de journalisation

Une condition de point de journalisation est une expression simple qui doit renvoyer la valeur true pour que le point de journalisation soit consigné. Les conditions de point de journalisation sont évaluées chaque fois qu'une instance exécute la ligne de code jusqu'à ce que le point de journalisation arrive à expiration ou soit supprimé.

La condition est une expression booléenne complète pouvant inclure des opérateurs logiques :

travelAccessory == "Towel"
ultimateAnswer <= 42
travelAccessory == "Towel" && ultimateAnswer <= 42

Messages de point de journalisation

Le message d'un point de journalisation détermine ce qui est consigné dans la sortie. Les expressions vous permettent d'évaluer et de consigner les valeurs qui vous intéressent. Dans un message, tout ce qui se trouve entre accolades ({myObj.myFunc()} ou {a + b}, par exemple) est remplacé par la valeur de l'expression dans la sortie. Dans l'exemple ci-dessus, le message User {name} scored {newScore.score} consigne une sortie équivalente à User user1 scored 99.

Vous pouvez utiliser les fonctionnalités de langage ci-dessous pour les expressions.

Java

La plupart des expressions Java sont compatibles, y compris les suivantes :
  • Variables locales : a == 8
  • Opérations numériques et booléennes : x + y < 20
  • Champs d'instance et champs statiques : this.counter == 20, this.myObj.isShutdown, myStatic ou com.mycompany.MyClass.staticMember
  • Comparaisons de chaînes avec l'opérateur d'égalité : myString == "abc"
  • Appels de fonctions. Seules les fonctions en lecture seule peuvent être utilisées. Par exemple, la fonction StringBuilder.indexOf() est acceptée, mais StringBuilder.append() ne l'est pas.
  • Diffusion de type, avec des types complets : ((com.myprod.ClassImpl) myInterface).internalField

Les fonctionnalités de langage suivantes ne sont pas compatibles :

  • Déballage de types numériques, tels que Integer. Utilisez plutôt myInteger.value.

Python

La plupart des expressions Python sont compatibles, y compris les suivantes :
  • Lecture des variables locales et globales
  • Lecture à partir de tableaux, de listes, de tranches de tableau, de dictionnaires et d'objets
  • Appel de méthodes simples

Les fonctionnalités de langage suivantes ne sont pas compatibles :

  • Appel de fonctions qui allouent de nouveaux objets ou utilisent des constructions complexes
  • Création d'objets dans l'expression

Go (bêta)

La syntaxe de la plupart des expressions Go est compatible, y compris les suivantes :
  • Lecture des variables locales et globales
  • Lecture à partir de tableaux, de tranches de tableau, de cartes et de structures

Les fonctionnalités de langage suivantes ne sont pas compatibles :

  • Lecture à partir des valeurs d'interface
  • Conversion de type et valeurs littérales composites
  • Appel de fonctions autres que len

Afficher la sortie

La sortie du point de journalisation est envoyée au journal approprié pour l'environnement de la cible.

App Engine

Les points de journalisation définis dans les applications App Engine envoient leur sortie au journal de requêtes dans Logging.

Vous pouvez afficher les journaux dans le panneau Journaux ou dans la visionneuse de journaux dédiée.

Compute Engine

Les points de journalisation définis dans les applications Compute Engine envoient leur sortie au même emplacement que les entrées de journal classiques. Par exemple, en Python, le module de journalisation par défaut envoie sa sortie à stdout. Il peut toutefois être configuré pour écrire dans un fichier spécifique.

Vous pouvez configurer l'agent de journalisation pour qu'il transfère les journaux vers Logging. De là, vous pouvez afficher les journaux dans la visionneuse de journaux.

Supprimer des points de journalisation

Les points de journalisation deviennent inactifs et arrêtent la consignation des messages après 24 heures. Ils sont automatiquement supprimés après 30 jours. Vous pouvez supprimer manuellement un point de journalisation. Cette action entraîne l'arrêt de la journalisation et supprime le point de journalisation de l'historique. Il ne sera donc pas possible de s'y référer ultérieurement. Toutefois, la suppression d'un point de journalisation n'entraîne pas la suppression des messages de journal déjà générés.

Pour supprimer un point de journalisation, procédez comme suit :

Dans l'onglet Points de journalisation dans le volet inférieur de la console GCP, maintenez le pointeur de la souris sur le point de journalisation, puis cliquez sur Supprimer

Supprimer une entrée de journal

Étape suivante