Utilisez Python debugger
Python debugger ou pdb est un module de la bibliothèque standard de Python. Il permet de créer des points d’arrêt dans un programme.
Mais rien ne vaut une petite démonstration, n’est-ce pas ? Dans la vidéo suivante, nous allons explorer les fonctionnalités de base de pdb pour remonter à la source des bugs de notre projet.
Vous pouvez télécharger le code du screencast à cette adresse.
Créez des logs personnalisés
Je suis sûr que maintenant vous êtes reconnaissant à Python pour les messages qu’il vous envoie. Néanmoins il s’agissait essentiellement d’erreurs. Ne serait-il pas bien d’afficher d’autres types de messages ? On pourrait par exemple les lister et les afficher en fonction du déroulement du programme pour donner tout un tas d’informations.
Le besoin que nous venons de décrire s’appelle la journalisation (logging en anglais), et c’est justement l’objectif du module logging. Comme pdb, il fait partie de la bibliothèque standard de Python. Il permet d’observer le fonctionnement d’un programme et d’afficher des messages en les classant par niveau.
Pour l’utiliser nous devons d’abord importer le module.
import logging
Ensuite, nous devons utiliser les fonctions propres à logging en fonction des niveaux de log. Les voici du niveau le plus bas au niveau le plus critique :
logging.debug()
: Des informations détaillées dans le but d'en savoir plus sur le déroulement d'une instruction.logging.info()
: Des informations sur le déroulement du programme, par exemple pour confirmer que tout fonctionne correctement.logging.warning)
: Quelque chose d'inattendu s'est produit sans empêcher le programme de continuer à fonctionner. Il peut s’agir aussi de l’avertissement d’un risque imminent.logging.error()
: Une erreur est arrivée, probablement parce qu’une exception a été levée. Le programme ne fonctionnera donc pas comme prévu.logging.critical()
: Il s’agit d’un problème important qui a causé l'arrêt du programme.
Bien que ces logs affichent tous un message dans la console, il est important d’utiliser les bons niveaux. Que se passerait t-il, par exemple, si nous indiquions plusieurs logs à la suite comme ceci ?
import logging
logging.info("Informations sur le déroulement du programme")
logging.debug("Informations détaillées sur le déroulement du programme")
logging.warning("Quelque chose d'inattendu s'est produit")
Seul le warning s’affichera dans la console. En effet, si nous ne précisons pas le niveau de logging, c’est la méthode logging.warning()
qui s’affichera en priorité. Pour préciser le niveau de log, nous devons indiquer le code ci-dessous avant nos messages logs :
logging.basicConfig(level=logging.DEBUG)
En résumé
Le module pdb permet de stopper l'exécution du programme et ouvre une console interactive permettant de débugger le programme.
Le module logging permet d’afficher dans la console des messages personnalisés par niveau. Ces messages serviront d'indications précises pour débugger notre programme.
Dans le prochain chapitre vous verrez comment paramétrer votre IDE et ainsi faire de lui votre meilleur allié pour le débugging. Suivez-moi !