Skip to main content

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:

  1. Creación del Logger: Se crea un objeto Logger llamado 'mi_logger' utilizando el método getLogger() del módulo logging. Este será nuestro punto de entrada para registrar mensajes.

  2. Establecimiento del Nivel de Logging del Logger: Se establece el nivel de logging del logger en DEBUG utilizando el método setLevel(). Esto asegura que el logger registrará todos los mensajes, independientemente de su nivel de gravedad.

  3. Creación del Handler: Se crea un objeto StreamHandler, que manejará los mensajes de logging y los enviará a la salida estándar (consola).

  4. 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.

  5. 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.

  6. 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.

  7. 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.

  8. Registro de Mensajes: Se registran varios mensajes de diferentes niveles de gravedad utilizando los métodos debug(), info(), warning(), error() y critical() 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')