Log Analyser
Herramienta modular CLI en Python para el filtrado y análisis de archivos logs a gran escala con regex de alto rendimiento y reportes estructurados.

Descripción del Proyecto
Log Analyser es una utilidad CLI especializada creada para resolver un problema común de los desarrolladores: extraer información significativa de archivos de logs voluminosos y desordenados. En lugar de buscar manualmente entre miles de líneas, esta herramienta proporciona un resumen estructurado de los niveles de log y los mensajes de error más frecuentes.
Implementación Técnica
El proyecto se construyó con un enfoque en código limpio y rendimiento, utilizando un enfoque modular que sigue el Principio de Responsabilidad Única.
Parseo de Alto Rendimiento
El corazón de la herramienta es un parser robusto que utiliza expresiones regulares pre-compiladas. Mediante el uso de grupos de captura con nombre (ej. (?P<level>...)), el parser extrae eficientemente:
- Marcas de tiempo (Timestamps)
- Niveles de severidad (INFO, WARNING, ERROR, CRITICAL)
- Contenido del mensaje
El uso de generadores (procesamiento línea por línea) asegura que la herramienta pueda manejar archivos mucho más grandes que la memoria RAM disponible sin degradación del rendimiento.
Análisis de Datos
Para el análisis estadístico, aproveché collections.Counter de Python. Esto permitió un conteo casi instantáneo de las ocurrencias de logs y una identificación eficiente de los n mensajes de error más frecuentes mediante el método .most_common().
Arquitectura Modular
El código está organizado estrictamente en cuatro módulos clave:
parser.py: Maneja la extracción de texto y la coincidencia de regex.analyzer.py: Realiza cálculos estadísticos sobre los datos parseados.reporter.py: Formatea e imprime el reporte final utilizando alineación avanzada con f-strings.main.py: Actúa como orquestador y maneja los argumentos de la CLI medianteargparse.
¿Por qué este proyecto?
Aunque existen muchas herramientas de análisis de logs, este proyecto sirve como testimonio de mi capacidad para:
- Construir herramientas sin dependencias que funcionan de inmediato.
- Aplicar Patrones de Diseño de Software (Separación de Intereses) en un contexto de scripting.
- Escribir Python optimizado para tareas de procesamiento de texto.
Es un ejemplo práctico de creación de herramientas personalizadas para mejorar los flujos de trabajo de desarrollo.
Detalles del Proyecto
Objetivo
Crear una utilidad ligera y sin dependencias externas para ayudar a los desarrolladores a identificar rápidamente patrones de error y estadísticas de logs en archivos de texto masivos.
Tema
Estética técnica y minimalista de herramienta CLI.
Fecha
19 de marzo de 2026