Descripción del Problema
Conforme un programa crece, se hace más difícil corregir errores y bugs en este. Una práctica común en Python es el uso de sentencias print a lo largo del programa, para revisar el estado de variables, y el flujo del código durante la ejecución del programa. Sin embargo, es poco deseable que las sentencias print utilizadas para "debugging" del software aparezcan en la versión final, por lo que es necesario removerlas del códdigo, o desactivarlas de alguna forma a través de banderas.
Al momento de entregar una versión de prueba del programa (alpha, beta), se complica la forma en que los usuarios finales retroalimentan. Por lo general lo hacen a través de una descripción de lo que hacían con el programa en el momento en que sucedió el error, sin embargo, esto puede no ser suficiente.
Logs de Pyragua
El sistema de logs de Pyragua debe tener las siguientes características:
- Debe manejar diferentes niveles de error.
- Debe permitir desactivar completamente cualquier mensaje de logging, o solo enviar determinados tipos de error.
- Debe estar dividido en diferentes partes para cada subsistema del que esta conformado pyragua.
- Debe tener cierta flexibilidad para los plugins, de forma que si es necesario, estos puedan crear su propia subsección,
Ideas para la implementación
El módulo de logs de Pyragua debería ser un sistema que funciona sobre el módulo logging de Python, extendiendo ligeramente las capacidades de este para satisfacer las necesidades de Pyragua.
Se puede manejar una sección genérica de los logs para los plugins, sin embargo, es importante que en esta se identifique claramente a que plugin pertenece.
Dentro de la carpeta de Pyragua, se puede manejar una carpeta dedicada a almacenar los logs de cada una de las secciones. Un archivo por sección.
En caso de que no sea posible escribir en los archivos de log, estos no pueden de ninguna forma afectar el funcionamiento de pyragua.
- Uso del módulo logging de Python.
- Uso de un archivo de configuración para contener las diferentes secciones de log de Pyragua.
- Se podría pensar en una forma para reportar errores de pyragua, de forma que se empaqueten los logs y se envíen a alguna dirección de correo electrónico.
