Connexion à stdout en Python
-
Connectez-vous à
stdout
avec la fonctionlogging.basicConfig()
en Python -
Connectez-vous à
stdout
avec la fonctionlogging.StreamHandler()
en Python
![Connexion à stdout en Python](/img/Python/feature-image---python-logging-stdout.webp)
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')
.
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