44 lines
1.8 KiB
Python
44 lines
1.8 KiB
Python
import logging
|
|
|
|
|
|
def logging_with_formatting():
|
|
"""
|
|
Configurer un peu notre journalisation pour mettre en forme nos messages.
|
|
|
|
Nous devons utiliser un logger et le configurer pour savoir comment afficher nos
|
|
messages.
|
|
|
|
Un logger peut utiliser plusieurs handlers à la fois, et chacun a pour rôle
|
|
de transporter le message original vers une destination (fichier, console etc.)
|
|
|
|
Les handlers sont configurés en deux étapes : d'abord on choisit le type de
|
|
handler (fichier, console, etc.), et ensuite on lui associe un "formateur" pour
|
|
savoir comment stocker le message.
|
|
|
|
Notez : les loggers peuvent avoir un nom, et peuvent ainsi être retrouvés n'importe où
|
|
via leur nom pendant l'exécution de votre script, en utilisant la fonction `getLogger`.
|
|
|
|
"""
|
|
logger = logging.getLogger("withformat")
|
|
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
|
|
# Créer une nouvelle configuration qui sort les messages de journal dans la console
|
|
handler = logging.FileHandler("demo.log")
|
|
# Configurer cet objet pour utiliser notre format
|
|
handler.setFormatter(formatter)
|
|
# Et accessoirement, changer le niveau minimal de sévérité
|
|
handler.setLevel(logging.INFO)
|
|
# Assigner notre configuration à notre logger
|
|
# On doit faire tout ça parce qu'il n'y a pas de méthode
|
|
# pour facilement définir une chaîne de formatage pour un logger
|
|
logger.addHandler(handler)
|
|
logger.warning("Message d'avertissement")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
# Par défaut, Python n'affiche des messages de journalisation
|
|
# que s'ils excèdent une certaine sévérité.
|
|
# Dans la plupart des langages, par défaut, c'est la sévérité
|
|
# WARNING (en-dessous, on n'indique généralement pas de problème)
|
|
# qui est la plus basse prise en compte
|
|
logging_with_formatting()
|