Skip to content

Latest commit

 

History

History
298 lines (227 loc) · 7.09 KB

File metadata and controls

298 lines (227 loc) · 7.09 KB

✅ Sistema de Logging Mejorado - CONFIGURACIÓN COMPLETA

Qué Se Ha Hecho

Se ha reemplazado completamente el sistema de logging para:

  1. Capturar Automáticamente todos los logs en un archivo
  2. Mantener Pantalla Limpia sin contaminación visual
  3. Agregar Detalles Técnicos (timestamp, thread, nivel de severidad)
  4. Facilitar Debugging del congelamiento a 43-44 segundos
  5. No Requiere Configuración (RUST_LOG) - funciona automáticamente

Cómo Usar - Super Simple

Paso 1: Compilar

cargo build --release

Paso 2: Ejecutar (Pantalla Limpia)

./target/release/neuro

Paso 3: Monitorear Logs (En Otra Terminal)

# Opción 1: Script colorido
./monitor_logs.sh follow

# Opción 2: Línea de comandos
tail -f ~/.local/share/neuro/neuro.log

# Opción 3: Solo timing (para debugging del freeze)
tail -f ~/.local/share/neuro/neuro.log | grep TIMING

Paso 4: Reproducir Problema

En la app:

Analiza este repositorio y explicame de que se trata

Paso 5: Ver Dónde Falla

En los logs observarás:

  • Logs cada 10 segundos hasta congelamiento
  • Exacto punto donde se detiene
  • Thread y timestamp precisos

Ubicaciones Importantes

Qué Dónde
Archivo de Logs ~/.local/share/neuro/neuro.log
Script Monitor /home/madkoding/proyectos/neuro-agent/monitor_logs.sh
Guía Completa /home/madkoding/proyectos/neuro-agent/LOGGING_GUIDE.md
Mejoras Técnicas /home/madkoding/proyectos/neuro-agent/LOGGING_IMPROVEMENTS.md

Archivos Creados/Modificados

✅ Modificados

  • src/logging.rs - Sistema mejorado de logging
  • QUICK_TEST.md - Actualizado con nuevo sistema
  • TESTING_GUIDE_FREEZE_FIX.md - Actualizado con nuevo sistema

✅ Nuevos

  • LOGGING_GUIDE.md - Guía completa (250+ líneas)
  • LOGGING_IMPROVEMENTS.md - Explicación técnica detallada
  • monitor_logs.sh - Script ejecutable con colores
  • LOGGING_SETUP_COMPLETE.md - Este archivo

Diferencia Visual

Antes (Con RUST_LOG=debug)

Pantalla llena de logs:
[2026-01-16T10:30:45.123Z] DEBUG: 🔧 [BG-TASK] Starting...
[2026-01-16T10:30:45.200Z] DEBUG: 🔧 [BG-TASK] Lock acquired...
... cientos de líneas más ...
❌ No se ve la interfaz

Ahora (Normal)

┌─ Interfaz Limpia ─────────────────────┐
│                                       │
│  User > Analiza este repositorio     │
│                                       │
│  1/5: Listando directorio...         │
│  2/5: Leyendo README...              │
│  3/5: Leyendo Cargo.toml...          │
│                                       │
└───────────────────────────────────────┘

En otra terminal, los logs:

$ tail -f ~/.local/share/neuro/neuro.log | grep TIMING
[2026-01-16 10:30:50.123] [DEBUG] [Thread: tokio-runtime ID: ThreadId(5)] DEBUG: ⏱️ [TIMING] Processing at 10s
[2026-01-16 10:31:00.456] [DEBUG] [Thread: tokio-runtime ID: ThreadId(5)] DEBUG: ⏱️ [TIMING] Processing at 20s
[2026-01-16 10:31:10.789] [DEBUG] [Thread: tokio-runtime ID: ThreadId(5)] DEBUG: ⏱️ [TIMING] Processing at 30s

✅ Interfaz limpia + Logs detallados


Cómo Analizar el Freeze

Buscar Punto de Fallo

# Ver últimos timing logs
grep "TIMING" ~/.local/share/neuro/neuro.log | tail -10

# Resultado si TODO funciona:
# [... 10s, 20s, 30s, 40s, 50s ...]

# Resultado si hay freeze:
# [... 10s, 20s, 30s, 40s ...]
# ⬆️ Se detiene aquí a los 43-44s

Qué Significa

Si falta "TIMING" a los 44s:
  → No hay eventos nuevos
  → Ollama no responde

Si falta "EVENT-LOOP" a los 44s:
  → Event loop congelado
  → Problema en UI thread

Si falta "BG-TASK" a los 44s:
  → Background task colgado
  → Timeout lo recuperará (120s)

Cambios en src/logging.rs

// Antes:
- Logs solo si RUST_LOG=debug
- Poca información (solo timestamp + nivel + mensaje)
- Sin persistencia automática

// Ahora:
+ Logs SIEMPRE a archivo
+ Información detallada (timestamp ms, thread, thread-id, nivel)
+ Automático al iniciar (init_logger())
+ Nuevas funciones: log_timing(), log_event()
+ Nueva macro: log_trace!

Verificación

Build Status

✅ cargo build --release
   Compiled successfully
   Binary: 47MB
   Warnings: Only from deprecated code (expected)

Test Rápido

# Verificar que init_logger se llama
grep "init_logger" src/main.rs
# Result: Line 325 - ✅ Se llama

# Verificar archivo de log existe
ls -la ~/.local/share/neuro/neuro.log
# Result: File created with session header - ✅ Funciona

Comandos Rápidos Para Debugging

Ver todo en tiempo real

tail -f ~/.local/share/neuro/neuro.log

Ver solo lo importante

tail -f ~/.local/share/neuro/neuro.log | grep -E "TIMING|BG-TASK|ERROR"

Usar el script

./monitor_logs.sh follow    # Tiempo real
./monitor_logs.sh timing    # Solo timing
./monitor_logs.sh task      # Solo background task
./monitor_logs.sh errors    # Solo errores

Analizar después

# Ver secuencia de eventos
cat ~/.local/share/neuro/neuro.log | grep TIMING

# Contar cuántos logs hay
wc -l ~/.local/share/neuro/neuro.log

# Ver duración total
grep "BG-TASK.*complete" ~/.local/share/neuro/neuro.log | tail -5

# Buscar errores
grep ERROR ~/.local/share/neuro/neuro.log

Próximos Pasos Para Debugging del Freeze

  1. Ejecutar con logs:

    # Terminal 1
    ./target/release/neuro
    
    # Terminal 2
    ./monitor_logs.sh follow
  2. Enviar query que cause freeze:

    Analiza este repositorio y explicame de que se trata
    
  3. Observar logs:

    • ¿Logs aparecen cada 10 segundos? ✅ Buenos
    • ¿Se detienen a los 43-44s? ⚠️ Encontramos el punto
  4. Analizar qué falta:

    • ¿TIMING logs? Eventos no llegan
    • ¿EVENT-LOOP logs? Event loop congelado
    • ¿BG-TASK logs? Background task colgado
  5. Compartir:

    tail -100 ~/.local/share/neuro/neuro.log > neuro_logs.txt
    # Compartir neuro_logs.txt

Validación Final

Compilación: Exitosa ✅ Sin errores: Sí ✅ Pantalla limpia: Sí ✅ Logging automático: Sí ✅ Información detallada: Sí ✅ Fácil de monitorear: Sí ✅ Fácil de analizar: Sí ✅ Scripts de ayuda:


Resumen

Antes:

  • ❌ Logs en stderr (si RUST_LOG=debug)
  • ❌ Pantalla sucia
  • ❌ Sin persistencia
  • ❌ Difícil de analizar

Ahora:

  • ✅ Logs en archivo automáticamente
  • ✅ Pantalla limpia
  • ✅ Información completa
  • ✅ Fácil de monitorear y analizar
  • ✅ Script de ayuda incluido

Documentación Disponible

  • LOGGING_GUIDE.md - Guía completa y detallada (250+ líneas)
  • LOGGING_IMPROVEMENTS.md - Explicación técnica
  • QUICK_TEST.md - Instrucciones rápidas
  • TESTING_GUIDE_FREEZE_FIX.md - Debugging del freeze
  • monitor_logs.sh - Script ejecutable

Archivo: ~/.local/share/neuro/neuro.log

Está listo para usar. ¡Ejecuta y monitorea los logs!