Configuración avanzada
import logging
# Crear un objeto Logger
logger = logging.getLogger('mi_logger')
# Establecer el nivel de logging del logger
logger.setLevel(logging.DEBUG)
# Crear un objeto Handler (en este caso, un StreamHandler para la consola)
handler = logging.StreamHandler()
# Establecer el nivel de logging del handler
handler.setLevel(logging.DEBUG)
# Crear un objeto Formatter
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
# Asociar el formatter al handler
handler.setFormatter(formatter)
# Agregar el handler al logger
logger.addHandler(handler)
# Registrar mensajes
logger.debug('Este es un mensaje de depuración')
logger.info('Este es un mensaje informativo')
logger.warning('Este es un mensaje de advertencia')
logger.error('Este es un mensaje de error')
logger.critical('Este es un mensaje crítico')
Explicación:
-
Creación del Logger: Se crea un objeto
Logger
llamado 'mi_logger' utilizando el métodogetLogger()
del módulologging
. Este será nuestro punto de entrada para registrar mensajes. -
Establecimiento del Nivel de Logging del Logger: Se establece el nivel de logging del logger en
DEBUG
utilizando el métodosetLevel()
. Esto asegura que el logger registrará todos los mensajes, independientemente de su nivel de gravedad. -
Creación del Handler: Se crea un objeto
StreamHandler
, que manejará los mensajes de logging y los enviará a la salida estándar (consola). -
Establecimiento del Nivel de Logging del Handler: Se establece el nivel de logging del handler en
DEBUG
. Esto garantiza que el handler manejará todos los mensajes que reciba del logger, independientemente de su nivel de gravedad. -
Creación del Formatter: Se crea un objeto
Formatter
que especifica el formato en el que se presentarán los mensajes de logging. En este caso, el formato incluye la fecha y hora, el nombre del logger, el nivel de logging y el mensaje. -
Asociación del Formatter al Handler: Se asocia el formatter creado previamente al handler utilizando el método
setFormatter()
. Esto asegura que los mensajes manejados por el handler se formatearán de acuerdo con las especificaciones del formatter. -
Adición del Handler al Logger: Se agrega el handler creado previamente al logger utilizando el método
addHandler()
. Esto establece la conexión entre el logger y el handler, lo que permite al logger enviar mensajes al handler para su procesamiento. -
Registro de Mensajes: Se registran varios mensajes de diferentes niveles de gravedad utilizando los métodos
debug()
,info()
,warning()
,error()
ycritical()
del logger. Estos mensajes serán manejados por el handler asociado al logger y se presentarán en la consola con el formato especificado por el formatter.
Guardar log en archivos
Para guardar el log en un archivo personalizado, solo debemos cambiar la siguiente línea en el código:
# Crear un objeto Handler (en este caso, un FileHandler para escribir en un archivo)
handler = logging.FileHandler('mi_archivo.log')