• 30 heures
  • Moyenne

Ce cours est visible gratuitement en ligne.

course.header.alt.is_video

course.header.alt.is_certifying

J'ai tout compris !

Mis à jour le 21/05/2021

Personnalisez votre système de gestion de traces

Connectez-vous ou inscrivez-vous gratuitement pour bénéficier de toutes les fonctionnalités de ce cours !

Introduction

Vous savez comment ajouter des traces dans votre application. Vous savez également comment les consulter. Mais savez-vous comment les personnaliser ? Dans ce chapitre, nous allons apprendre à paramétrer l'affichage des traces. Nous verrons comment utiliser les fonctionnalités avancées d'Android Studio. Nous pourrons ainsi modifier les informations à afficher, utiliser de nouvelles couleurs, et gagner du temps en utilisant certains raccourcis pas piqués des hannetons (vous la connaissiez pas celle-là, hein ?).

Configuration de l'affichage

Gestion des filtres

Il n'est pas toujours facile de s'y retrouver lorsque vous avez des milliers de traces à l'écran. Heureusement, Android Studio a tout prévu : en haut à droite de l'onglet logcat, vous allez trouver quelques champs bien utiles.

Le premier champ permet d'afficher toutes les traces à partir du niveau sélectionné. Le niveau le plus faible étant Verbose et le niveau le plus élevé étant Assert. Si vous choisissez Verbose, Android Studio affichera toutes les traces, quel que soit le niveau. Si vous choisissez Info, Android Studio affichera les traces de niveau Info, Warn, Error et Assert. Vous avez compris le principe.

Le deuxième champ permet de faire une recherche par mot-clé. Par défaut, la recherche est assez sommaire : les opérateurs logiques ne peuvent pas être utilisés. C'est à dire que vous ne pouvez pas taper data OR network, en espérant qu'il vous affiche toutes les lignes qui contiennent soit data soit network.

Pour effectuer des recherches un peu plus poilues, cochez la case regex (troisième champ). Vous allez pouvoir saisir une expression régulière (ou expression rationnelle, pour les puristes). Dans mon exemple, je recherche les lignes contenant le mot sent, suivi d'une espace, suivie du caractère 1 ou 2, suivi d'une espace, suivie de n'importe quel nombre de caractères, suivis de 60s. Vous avez suivi ? Ho ho ho, quel humour. En tout cas, je vous invite à creuser ce sujet des expressions rationnelles. Un bon informaticien sait les utiliser, cela vous sera utile toute votre vie. Et vous pourrez briller en société lors de soirées mondaines.

Le quatrième champ permet de filtrer les messages. Vous pourrez ainsi n'afficher que les traces provenant de votre application (au lieu des traces générées par toutes les applications). Si vous souhaitez aller encore plus loin, vous pourrez paramétrer vos propres filtres et les enregistrer, en sélectionnant Edit Filter Configuration.

Choix des champs à afficher

Si les lignes vous paraissent trop longues, vous pouvez supprimer l'affichage de certains champs. Pour ce faire, toujours dans l'onglet logcat, cliquez sur le petit engrenage à gauche, au dessus du point d'interrogation. Vous pourrez par exemple supprimer l'affichage des identifiants de processus et d'application, permettant d'avoir des lignes plus courtes.

Gestion des couleurs

Par défaut, les traces de niveau Error et supérieur sont affichées en rouge. C'est un bon indicateur visuel. Mais vous pouvez allez plus loin dans cette configuration. Par exemple, en affichant les traces Info en bleu et Warning en orange. À la fin vous aurez un bel affichage bien bigarré !

Rendez-vous dans les préférences d'Android Studio, puis saisissez logcat dans le champ de recherche en haut à gauche. Cliquez ensuite à gauche sur l'entrée Android Logcat (normalement, elle est sélectionnée par défaut).

Suivez maintenant le étapes suivantes pour configurer les traces selon vos goûts :

  1. Commencez par sauvegarder le thème actuel en utilisant un thème personnalisé. Vous pourrez ainsi facilement revenir au thème initial si vous vous êtes trop lachés dans la configuration ;

  2. Sélectionnez le niveau de trace qui vous intéresse ;

  3. Décochez la case Use inherited attributes, afin d'activer la configuration des couleurs au-dessus ;

  4. Cochez la case Foreground puis cliquez sur la couleur pour la modifier. Vous pouvez également changer la couleur d'arrière plan, ajouter des effets, etc. Vous pourrez voir le résultat en temps-réel dans la fenêtre du dessous ;

  5. Pensez à sauvegarder vos modifications puis les appliquer en cliquant sur Apply puis OK.

Raccourcis Android Studio

N'oublions jamais que l'informaticien est flemmard. Il utilise toujours la machine pour gagner du temps. Votre clavier aura une durée de vie allongée, car vous aurez moins de caractères à taper. Merci qui ?

Comme nous l'avons vu dans le précédent chapitre, la méthode de trace requiert le paramètre TAG, correspondant au contexte de la trace. Dans la majorité des cas, vous préciserez le nom de la méthode. Sachant que vous allez préciser ce paramètre TAG dans chaque appel de trace, vous allez naturellement créer une variable de classe, par exemple :

private static final String TAG = "MainActivity";

Ensuite, vous appellerez la méthode de trace de la façon suivante :

Log.d(TAG, "selectTab() called with: pos = [" + pos + "], mainMode = [" + mainMode + "]");

Au lieu de passer ma matinée à saisir ces lignes, je me suis reposé sur deux raccourcis bien pratiques : logt (pour log tag et logm (pour log method). En saisissant juste logt puis Tabulation, Android Studio génère la première ligne, en précisant automatiquement le nom de la méthode. En saisissant logm puis Tabulation, c'est encore plus fort : Android Studio vous génère la ligne de trace, en précisant automatiquement le nom de la méthode et la valeur des paramètres.

Vous pouvez consulter les raccourcis disponibles, les modifier ou en créer de nouveau. Pour cela, rendez-vous dans les préférences d'Android Studio. Saisissez AndroidLog dans le champ de recherche en haut à gauche. Puis déroulez la section correspondante dans la fenêtre de droite.

Dernière petite astuce : au lieu d'écrire en dur le nom de la classe pour la valeur de la variable TAG, vous pouvez plutôt écrire :

private static final String TAG = MainActivity.class.getSimpleName();

Ainsi, si vous renommez un jour la classe en utilisant la fonction de renommage d'Android Studio (clic-droit sur le nom de la classe, puis Refactor > Rename...), il vous modifiera automatiquement la variable TAG. Un bon exercice pour vous : essayez de modifier le raccourci logt pour qu'il vous génère automatiquement cette ligne !

Bonnes pratiques

Niveaux de traces à utiliser

Parmi tous les niveaux de trace disponibles, je vous conseille d'éviter d'utiliser les niveaux VERBOSE et ERROR.

Le niveau VERBOSE porte bien son nom, il est verbeux. Servant à tracer des informations très triviales, il n'a pas vraiment d'intérêt. Nous verrons dans un prochain chapitre comment utiliser les points d'arrêt pour observer la valeur de certaines variables.

Le niveau ERROR n'a pas vraiment de sens non plus. Lorsqu'une erreur intervient, l'application est normalement dans un état bancal et ne peut plus fonctionner correctement. Il est plus sage de l'arrêter proprement et d'envoyer un rapport de crash (nous verrons comment faire plus tard).

Il nous reste donc :

  • Le niveau DEBUG, pour les changements mineurs ;

  • Le niveau INFO, pour les changements majeurs ;

  • Le niveau WARN, pour les anomalies qui ne devraient pas se produire, mais qui sont rattrapables. C'est un indicateur pour le développeur : il doit apporter une correction.

Contexte

Au lieu d'utiliser le nom de la classe pour le champ TAG, vous pouvez plutôt préciser la composante d'exécution. Cela permettra d'avoir des traces beaucoup plus lisibles dans de grosses applications. C'est à dire :

  • UI : tout ce qui touche à l'interface graphique ;

  • DATA : tout ce qui touche au modèle, aux données ;

  • NETWORK : tout ce qui touche au réseau, au trafic internet ;

  • APP : tout ce qui touche à la logique métier.

Conclusion

Vous êtes maintenant bien armés pour gérer vos traces à la perfection. Si vous souhaitez aller encore plus loin, vous pouvez regarder du côté de Logger, permettant d'avoir des affichages encore plus personnalisés. Ou de Timber, pour gérer vos traces intelligemment en fonction du contexte.

Exemple de certificat de réussite
Exemple de certificat de réussite