Connexion à stdout en Python

Muhammad Maisam Abbas 30 janvier 2023
  1. Connectez-vous à stdout avec la fonction logging.basicConfig() en Python
  2. Connectez-vous à stdout avec la fonction logging.StreamHandler() en Python
Connexion à stdout en Python

Ce didacticiel présentera les méthodes pour écrire des journaux dans un fichier et une sortie standard en Python.

Connectez-vous à stdout avec la fonction logging.basicConfig() en Python

Si nous voulons imprimer nos journaux dans la fenêtre de la console et écrire les journaux dans un fichier, nous pouvons utiliser la fonction logging.basicConfig() pour ce processus. La fonction logging.basicConfig() configure certains paramètres de base pour la journalisation en Python. On peut utiliser le paramètre stream de cette fonction pour préciser qu’on veut aussi que ce log soit imprimé sur la fenêtre de la console. Le reste de la configuration reste identique à l’écriture d’un journal dans un fichier avec la fonction logging.basicConfig(). Le code suivant montre comment nous pouvons écrire des journaux dans la fenêtre de la console.

import logging
import sys

# Creating and Configuring Logger

Log_Format = "%(levelname)s %(asctime)s - %(message)s"

logging.basicConfig(
    filename="logfile.log",
    stream=sys.stdout,
    filemode="w",
    format=Log_Format,
    level=logging.ERROR,
)

logger = logging.getLogger()

# Testing our Logger

logger.error("Our First Error Message")

Production:

2021-06-13 05:15:24,093 - root - ERROR - Our First Error Message

Connectez-vous à stdout avec la fonction logging.StreamHandler() en Python

Nous pouvons également utiliser la fonction logging.StreamHandler() pour écrire des journaux dans la fenêtre de la console en Python. En passant sys.stdout à la fonction logging.StreamHandler(), nous pouvons créer un gestionnaire de flux qui peut imprimer le message du journal dans la fenêtre de la console. Nous pouvons ensuite ajouter ce gestionnaire de flux à notre objet logger avec la fonction addHandler(). L’extrait de code suivant nous montre comment nous pouvons imprimer des messages de journal dans la fenêtre de la console avec la fonction logging.StreamHandler().

import logging
import sys

logger = logging.getLogger()
fileHandler = logging.FileHandler("logfile.log")
streamHandler = logging.StreamHandler(sys.stdout)
formatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s")
streamHandler.setFormatter(formatter)
fileHandler.setFormatter(formatter)
logger.addHandler(streamHandler)
logger.addHandler(fileHandler)
logger.error("This is the first error")

Production:

2021-06-13 05:03:37,510 - root - ERROR - This is the first error

Nous avons écrit le message de journal This is the first error dans le fichier logfile.log et la fenêtre de la console avec les fonctions logging.FileHandler() et logging.StreamHandler() dans le code ci-dessus. Nous avons d’abord créé un objet logger que nous utiliserons pour écrire des logs avec la fonction logging.getLogger(). Ensuite, nous avons créé un gestionnaire de fichiers fileHandler et lui avons attribué logging.FileHandler('logfile.log').

Après cela, nous avons créé un gestionnaire de flux, streamHandler, et attribué logging.StreamHandler(sys.stdout). Après cela, nous avons créé un formateur pour formater notre sortie avec la fonction logging.Formatter() et défini le formateur pour fileHandler et streamHandler avec la fonction setFormatter(). Suite à l’étape précédente, nous avons ajouté les deux nouveaux gestionnaires à notre objet logger avec la fonction addHandler(). En fin de compte, nous avons écrit le message d’erreur dans notre fichier et la fenêtre de la console avec logger.error('This is the first error').

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

Article connexe - Python Logging