Se ha reemplazado completamente el sistema de logging para:
- Capturar Automáticamente todos los logs en un archivo
- Mantener Pantalla Limpia sin contaminación visual
- Agregar Detalles Técnicos (timestamp, thread, nivel de severidad)
- Facilitar Debugging del congelamiento a 43-44 segundos
- No Requiere Configuración (RUST_LOG) - funciona automáticamente
cargo build --release./target/release/neuro# 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 TIMINGEn la app:
Analiza este repositorio y explicame de que se trata
En los logs observarás:
- Logs cada 10 segundos hasta congelamiento
- Exacto punto donde se detiene
- Thread y timestamp precisos
| 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 |
src/logging.rs- Sistema mejorado de loggingQUICK_TEST.md- Actualizado con nuevo sistemaTESTING_GUIDE_FREEZE_FIX.md- Actualizado con nuevo sistema
LOGGING_GUIDE.md- Guía completa (250+ líneas)LOGGING_IMPROVEMENTS.md- Explicación técnica detalladamonitor_logs.sh- Script ejecutable con coloresLOGGING_SETUP_COMPLETE.md- Este archivo
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
┌─ 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
# 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-44sSi 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)
// 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!✅ cargo build --release
Compiled successfully
Binary: 47MB
Warnings: Only from deprecated code (expected)# 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 - ✅ Funcionatail -f ~/.local/share/neuro/neuro.logtail -f ~/.local/share/neuro/neuro.log | grep -E "TIMING|BG-TASK|ERROR"./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# 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-
Ejecutar con logs:
# Terminal 1 ./target/release/neuro # Terminal 2 ./monitor_logs.sh follow
-
Enviar query que cause freeze:
Analiza este repositorio y explicame de que se trata -
Observar logs:
- ¿Logs aparecen cada 10 segundos? ✅ Buenos
- ¿Se detienen a los 43-44s?
⚠️ Encontramos el punto
-
Analizar qué falta:
- ¿
TIMINGlogs? Eventos no llegan - ¿
EVENT-LOOPlogs? Event loop congelado - ¿
BG-TASKlogs? Background task colgado
- ¿
-
Compartir:
tail -100 ~/.local/share/neuro/neuro.log > neuro_logs.txt # Compartir neuro_logs.txt
✅ 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: Sí
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
LOGGING_GUIDE.md- Guía completa y detallada (250+ líneas)LOGGING_IMPROVEMENTS.md- Explicación técnicaQUICK_TEST.md- Instrucciones rápidasTESTING_GUIDE_FREEZE_FIX.md- Debugging del freezemonitor_logs.sh- Script ejecutable
Archivo: ~/.local/share/neuro/neuro.log
Está listo para usar. ¡Ejecuta y monitorea los logs!