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
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.
Cliquez sur le nom d'un dépôt.
Accédez au fichier contenant le code source que vous souhaitez consulter.
Cliquez sur le numéro de ligne de l'emplacement du code source.
Lorsque vous y êtes invité, sélectionnez l'application à laquelle vous souhaitez ajouter le point de journalisation.
Cliquez sur Créer un point de journalisation.
Lorsque vous y êtes invité, saisissez la condition et le message du point de journalisation.
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 create.
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 acceptées, y compris les suivantes :- Variables locales :
a == 8
. - Opérations numériques et booléennes:
x + y < 20
- Champs d'instance et statiques :
this.counter == 20
,this.myObj.isShutdown
,myStatic
oucom.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, maisStringBuilder.append()
ne l'est pas. - Diffusion de type :
((com.myprod.ClassImpl) myInterface).internalField
Les fonctionnalités de langage suivantes ne sont pas compatibles :
- Décompression de types numériques tels que
Integer
; utilisez plutôtmyInteger.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 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 plupart des syntaxes d'expressions Go sont acceptées, 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
- Appels 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 consulter les journaux dans le panneau "Journaux" ou dans l'explorateur de journaux dédié.
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. Vous pouvez alors consulter les journaux dans l'Explorateur 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 delete