Module Logging Python

Le module logging vous permet d’enregistrer des messages debug, info, warning, error et exception de manière cohérente.

import logging

Utilisez logging à la place de print() lorsque les messages ont des niveaux d’importance différents, ou si vous souhaitez plus tard les envoyer vers un fichier.

Configuration de base

basicConfig configure le logger par défaut.

import logging

logging.basicConfig(level=logging.INFO)
logging.info('Application started')
logging.warning('Low disk space')
INFO:root:Application started
WARNING:root:Low disk space

Les messages situés sous le niveau configuré sont ignorés :

import logging

logging.basicConfig(level=logging.WARNING)
logging.info('Hidden message')
logging.warning('Visible message')
WARNING:root:Visible message

Créer un logger nommé

Les loggers nommés sont utiles dans les applications plus grandes.

import logging

logger = logging.getLogger('app.users')
logger.setLevel(logging.INFO)
print(logger.name)
app.users

Formater les messages

Vous pouvez personnaliser le format de sortie.

import logging

logging.basicConfig(
    level=logging.INFO,
    format='%(levelname)s:%(name)s:%(message)s',
)

logger = logging.getLogger('app')
logger.info('Ready')
INFO:app:Ready

Journaliser les exceptions

logger.exception enregistre automatiquement la traceback à l’intérieur d’un bloc except.

import logging

logging.basicConfig(level=logging.ERROR)
logger = logging.getLogger(__name__)

try:
    1 / 0
except ZeroDivisionError:
    logger.exception('Calculation failed')
ERROR:__main__:Calculation failed
Traceback (most recent call last):
...
ZeroDivisionError: division by zero

Liens pertinents