Iniciar sesión en stdout en Python

Muhammad Maisam Abbas 30 enero 2023
  1. Iniciar sesión en stdout con la función logging.basicConfig() en Python
  2. Iniciar sesión en stdout con la función logging.StreamHandler() en Python
Iniciar sesión en stdout en Python

Este tutorial presentará los métodos para escribir registros en un archivo y stdout en Python.

Iniciar sesión en stdout con la función logging.basicConfig() en Python

Si queremos imprimir nuestros registros en la ventana de la consola y escribir los registros dentro de un archivo, podemos usar la función logging.basicConfig() para este proceso. La función logging.basicConfig() configura algunos parámetros básicos para iniciar sesión en Python. Podemos usar el parámetro stream de esta función para especificar que también queremos que este registro se imprima en la ventana de la consola. El resto de la configuración sigue siendo el mismo que escribir un registro en un archivo con la función logging.basicConfig(). El siguiente código demuestra cómo podemos escribir registros en la ventana de la consola.

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

Producción :

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

Iniciar sesión en stdout con la función logging.StreamHandler() en Python

También podemos usar la función logging.StreamHandler() para escribir registros en la ventana de la consola en Python. Al pasar sys.stdout a la función logging.StreamHandler(), podemos crear un controlador de flujo que puede imprimir el mensaje de registro en la ventana de la consola. Luego podemos agregar este controlador de flujo a nuestro objeto de registro con la función addHandler(). El siguiente fragmento de código nos muestra cómo podemos imprimir mensajes de registro en la ventana de la consola con la función 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")

Producción :

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

Escribimos el mensaje de registro This is the first error en el archivo logfile.log y la ventana de la consola con las funciones logging.FileHandler() y logging.StreamHandler() en el código anterior. Primero creamos un objeto de registro que usaremos para escribir registros con la función logging.getLogger(). Luego, creamos un controlador de archivos fileHandler y le asignamos logging.FileHandler('logfile.log').

Después de eso, creamos un controlador de flujo, streamHandler, y le asignamos logging.StreamHandler(sys.stdout). Después de eso, creamos un formateador para formatear nuestra salida con la función logging.Formatter() y configuramos el formateador tanto para fileHandler como para streamHandler con la función setFormatter(). Siguiendo el paso anterior, agregamos ambos nuevos manejadores a nuestro objeto logger con la función addHandler(). Al final, escribimos el mensaje de error en nuestro archivo y la ventana de la consola con 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

Artículo relacionado - Python Logging