Lorsque l'on veut afficher un simple message en Python, il faut utiliser print. Mais parfois, l'information que l'on transmet à l'utilisateur n'est pas un simple message : il peut s'agir d'un avertissement suite à un problème rencontré par le programme, voire même d'une erreur. Les messages doivent alors être qualifiés et on peut même filtrer leur affichage en fonction de leur importance, les stocker dans des fichiers de log... Vous l'aurez compris, print ne suffit plus ! La journalisation des messages (ou logging en anglais) permet de conserver un historique des incidents survenus lors de l'exécution d'un programme. Les messages, généralement horodatés, sont stockés dans un fichier appelé journal ou fichier de log, mais ils peuvent également être affichés à l'écran. En Python, il existe un module bien pratique pour réaliser toutes les tâches liées à la tenue d'un tel journal : le module logging.
1. Les différents niveaux des messages
Les messages de log sont classés en six catégories d'importance décroissante :
- CRITICAL pour les erreurs critiques,
- ERROR pour les erreurs,
- WARNING pour les messages d'avertissement,
- INFO pour les messages d'information,
- DEBUG pour les tests et le débogage,
- NOTSET pour ne rien définir.
À chacune de ces catégories (sauf la dernière) est associée une fonction de même nom affichant un message classé dans la catégorie souhaitée. Voici un exemple utilisant ces différentes fonctions :
01: # -*- coding:utf-8 -*-
02:
03: import logging
04:
05: logging.critical("Ceci est une erreur critique !")
06: logging.error("Ceci est une erreur !")
07: logging.warning("Ceci est un avertissement")
08: logging.info("Ceci est un message d'information")
09: logging.debug("Ceci est un message de débogage")
Lors de l'exécution du code, nous obtenons l'affichage suivant :
CRITICAL:root:Ceci est une erreur...
- Accédez à tous les contenus de Connect en illimité
- Découvrez des listes de lecture et des contenus Premium
- Consultez les nouveaux articles en avant-première