Introducción

Cuando desarrollas aplicaciones más grandes, los mensajes de depuración y los errores se vuelven difíciles de rastrear. El módulo logging de Python te permite registrar eventos, advertencias y errores en archivos o en la consola, facilitando el diagnóstico y mantenimiento del código.

¿Qué es el módulo logging?

logging es una biblioteca estándar que sirve para registrar información sobre la ejecución del programa. A diferencia de print(), los mensajes de logging pueden clasificarse por nivel de importancia y guardarse en archivos.

Ejemplo básico

Paso a paso

  • import logging → Importa el módulo estándar de Python para registrar eventos.
  • logging.basicConfig(level=logging.INFO) → Configura el nivel mínimo de mensajes que se mostrarán (en este caso, INFO y superiores).
  • logging.info("Inicio del programa") → Registra un mensaje informativo.
  • logging.warning("Advertencia: configuración incompleta") → Registra una advertencia.
  • logging.error("Error: archivo no encontrado") → Registra un error.

La salida muestra cada mensaje con su nivel (INFO, WARNING, ERROR) y el texto correspondiente.

Salida:

Cada mensaje tiene un nivel (INFO, WARNING, ERROR) que indica su gravedad.

Niveles de registro

Guardar registros en un archivo

Paso a paso

  1. filename="app.log" → Los mensajes se guardan en el archivo app.log.
  2. level=logging.DEBUG → Se registran todos los niveles desde DEBUG hacia arriba.
  3. format="%(asctime)s - %(levelname)s - %(message)s" → Define el formato del mensaje: fecha/hora, nivel y texto.
  4. logging.info("Aplicación iniciada") → Se guarda un mensaje informativo en el archivo.
  5. logging.error("Error al conectar con la base de datos") → Se guarda un error con marca de tiempo.

Personalizar el formato

Puedes incluir información adicional como el nombre del módulo o la línea del error:

Ejemplo de salida:

Uso avanzado con Logger y Handler

Paso a paso

  1. logger = logging.getLogger("MiApp") → Crea un logger con nombre propio.
  2. handler = logging.FileHandler("miapp.log") → Define un manejador que escribe en el archivo miapp.log.
  3. formatter = logging.Formatter("%(levelname)s - %(message)s") → Define el formato de los mensajes.
  4. handler.setFormatter(formatter) → Aplica el formato al manejador.
  5. logger.addHandler(handler) → Asocia el manejador al logger.
  6. logger.setLevel(logging.INFO) → Configura el nivel mínimo de mensajes.
  7. logger.info("Inicio del sistema") → Registra un mensaje informativo en el archivo.
  8. logger.warning("Memoria baja") → Registra una advertencia en el archivo.

Esto te permite tener múltiples manejadores (por ejemplo, consola y archivo) con diferentes formatos.

Conclusión

El módulo logging es una herramienta esencial para cualquier desarrollador profesional. Te permite registrar, analizar y depurar tu código sin depender de print(), manteniendo tus programas organizados y confiables.

Llamada a la acción

Crea un sistema de registro que guarde los errores en un archivo y las advertencias en la consola, usando diferentes Handler y Formatter.


Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *