Initial commit
This commit is contained in:
0
source/12-logging/logs/__init__.py
Normal file
0
source/12-logging/logs/__init__.py
Normal file
45
source/12-logging/logs/base.py
Normal file
45
source/12-logging/logs/base.py
Normal file
@ -0,0 +1,45 @@
|
||||
import logging
|
||||
import sys
|
||||
|
||||
|
||||
def logging_without_formatting():
|
||||
"""
|
||||
La base de la journalisation.
|
||||
|
||||
"""
|
||||
logger = logging.getLogger("noformat")
|
||||
logger.debug("This is a debug message")
|
||||
logger.info("This is an info message")
|
||||
logger.warning("This is a warning message")
|
||||
logger.error("This is an error message")
|
||||
logger.critical("This is a critical message")
|
||||
|
||||
|
||||
def logging_with_formatting():
|
||||
"""
|
||||
Configurer un peu notre journalisation pour mettre en forme nos messages.
|
||||
|
||||
"""
|
||||
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.StreamHandler(sys.stdout)
|
||||
# Configurer cet objet pour utiliser notre format
|
||||
handler.setFormatter(formatter)
|
||||
# Configurer le handler pour afficher aussi les messages DEBUG et INFO
|
||||
handler.setLevel(logging.DEBUG)
|
||||
# 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_without_formatting()
|
||||
logging_with_formatting()
|
43
source/12-logging/logs/files.py
Normal file
43
source/12-logging/logs/files.py
Normal file
@ -0,0 +1,43 @@
|
||||
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()
|
Reference in New Issue
Block a user