Mis a jour le 2024-06-16, 21:51

Logging

On peut utiliser le module standard logging : import logging
Différents niveaux, le niveau par défaut étant WARNING et tout appel d'un niveau supérieur à celui défini produira un log :
Pour régler le niveau de debug (et aussi le fichier d'output) :
On peut formatter les messages : logging.basicConfig(level = logging.WARNING, format = '%(levelname)s:%(asctime)s:%(message)s', datefmt = '%Y-%m-%d %H:%M:%S')
En général, on souhaite indiquer la provenance du logging :
Handlers : on définit un handler qui va s'occuper des messages, et on ajoute à logger un ou plusieurs handlers : le logger va passer les messages au handler qui va les traiter.
Si on configure un FileHandler, on a quand même aussi du log sur stderr car par défaut, le root logger a un StreamHandler défini (cf valeur de logging.getLogger().handlers). Pour éviter le logging sur la console :
Valeurs utilisables dans l'argument fmt des Formatters :
Si l'action du logging est un peu couteuse, on peut tester si elle doit être faite :
if logger.isEnabledFor(logging.DEBUG):
  logger.debug('Message with %s', myLongFunction())
  

Copyright python-simple.com
programmer en python, tutoriel python, graphes en python, Aymeric Duclert