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()