Skip to content

Definir estrategia de Logging #122

@Azfe

Description

@Azfe

✔️ Estrategia de logging recomendada para tu backend

1. Logging centralizado con logging de Python

  • Configuración global en main.py o config/logging.py
  • Formato estándar JSON o texto
  • Niveles: DEBUG, INFO, WARNING, ERROR, CRITICAL

2. Middlewares para logging de requests

  • Registrar:
    • Método (GET, POST…)
    • Ruta
    • Código de respuesta
    • Tiempo de ejecución
    • IP del cliente
    • User-Agent

Esto se hace en logging_middleware.py y process_time_middleware.py.

3. Logging de errores

  • Captura centralizada en exception_handlers.py
  • Convierte errores de dominio en errores HTTP
  • Registra stacktrace solo en entorno de desarrollo

4. Logging en infraestructura

  • Repositorios registran errores de conexión a MongoDB
  • Servicios externos (PDF, email, etc.) registran fallos

5. Logging en casos de uso (opcional y mínimo)

  • Solo eventos importantes:
    • “Profile updated”
    • “Experience added”
    • “CV PDF generated”

6. Logging por entorno

  • Desarrollo: nivel DEBUG
  • Producción: nivel INFO o WARNING
  • Testing: logging desactivado o minimizado

🎯 ¿Por qué esta estrategia es ideal para tu proyecto?

Porque:

  • No rompe Clean Architecture
  • Mantiene el dominio limpio
  • Centraliza todo el logging en la capa API e infraestructura
  • Permite depurar sin ensuciar el código
  • Es compatible con Docker y despliegues futuros
  • Es escalable si algún día usas ELK, Grafana, Loki, etc.

📌 ¿Necesito más información de tu parte?

Solo una cosa:

¿Quieres que el logging sea:

  1. Texto plano (más simple)
  2. JSON estructurado (más profesional, ideal para producción y logs centralizados)

Dime 1 o 2 y lo documento en tu ARCHITECTURE.md.

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentation

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions