[Python] : comment logger dans vos scripts avec logging ?

Python est bien équipé en matière de modules. Une fois de plus, il nous met à disposition le nécessaire pour faire simplement les choses. Logguer est une nécessité pour savoir si vos scripts et vos applications se portent bien, pour suivre les résultats et superviser.

Avec logging, vous pourrez logger en mettant en forme vos logs en les paramétrant de différentes manières pour vous faciliter la vie. Logging permet de structurer, hierarchiser, écrire vos logs.

Voici ce que j’utilise de mon côté :

import logging
import sys

# create logger
logging.basicConfig(filename='/var/log/script.log',format='%(asctime)s - %(name)s - %(levelname)s >>>> %(message)s',level=logging.DEBUG)
logger = logging.getLogger('script python xavki')
logger.addHandler(logging.StreamHandler(sys.stdout))

if __name__ == "__main__":
  try:
     logger.info('Action 1 [OK]')
  except:
     logger.warning('Action 1 [KO]')

Alors voici ce que nous avons fait :

  • import des modules logging et sys
  • instanciation du logger
    • le fichier de log et sa localisation
    • le format (date / nom / niveau de log / message)
    • ajout d’un handler qui permet de logger également sur stdout (on log donc dans un fichier et à l’écran)
  • dans le try (cas de réussite) : lancement du script et log pour dire [OK]
  • dans le except (cas d’erreur) : log pour dire [KO]

Et le résultat :

2018-08-19 22:10:26,620 - script python xavki - INFO - Action 1 [OK]
2018-08-19 22:10:26,695 - script python xavki - WARNING - Action 1 [KO]

A vous ensuite d’organiser la hiérarchie de vos log :

  • info
  • warning
  • debug
  • error
  • critical

Si votre configuration vous semble un peu complexe et pour homogénéiser plus facilement votre conf logging, utilisez un fichier de conf (format ini ou yaml).

logging.config.fileConfig('logging.conf')

Vous pouvez consulter la page de doc python pour en savoir plus. Sachez qu’il est aussi possible de logger par mail en smtp.

Un commentaire sur “[Python] : comment logger dans vos scripts avec logging ?

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion /  Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s