AlkantarClanX12
| Current Path : /www/capitalgmcbuickregina_830/public/wp-content/plugins/leadbox/ |
| Current File : /www/capitalgmcbuickregina_830/public/wp-content/plugins/leadbox/LOGGER-SETUP.md |
# 🎉 LB_Logger - Configuración Completada
## ⭐ Ventaja de Esta Configuración
**Problema resuelto**: WordPress loggea TODOS los errores PHP (warnings, notices, deprecated) en `debug.log`, llenándolo de ruido innecesario.
**Solución aplicada**:
1. 📁 **`leadbox-debug.log`** - Logs limpios y estructurados solo de Leadbox
2. 🔇 **`debug.log`** - Solo errores críticos de PHP (sin warnings/notices)
3. 🚀 **Resultado**: Logs organizados, fáciles de leer, sin ruido
---
## ✅ Estado Actual
### Archivos Creados:
- ✅ `lib/class-logger.php` - Clase PSR-3 compliant logger
- ✅ `test-logger.php` - Script de prueba
- ✅ `LOGGER-SETUP.md` - Este archivo
### Configuración Aplicada en `wp-config.php`:
```php
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'LEADBOX_LOG_LEVEL', 'debug' );
define( 'LEADBOX_LOG_TO_DATABASE', false ); // Solo archivo, no base de datos
// Filtrar warnings/notices/deprecated - Solo errores críticos en debug.log
error_reporting( E_ERROR | E_PARSE | E_CORE_ERROR | E_COMPILE_ERROR | E_USER_ERROR );
```
### Archivos Actualizados con Logging:
- ✅ `classes/api.php` - API errors
- ✅ `lib/settings.php` - GraphQL errors + Admin log viewer
- ✅ `lib/actions.php` - Block registration errors
- ✅ `lib/class-inventory-manager.php` - Inventory file errors
- ✅ `integrations/ninja-forms/actions/send-lead.php` - Lead submission errors
---
## 📍 Ubicación de los Logs
### 1. Archivo de Log Leadbox (ACTIVO) ⭐
**Ubicación**: `wp-content/leadbox-debug.log`
- ✅ Archivo separado solo para Leadbox
- ✅ Incluye todos los niveles: DEBUG, INFO, WARNING, ERROR, CRITICAL
- ✅ Formato estructurado con Request ID, User ID, Context
- ✅ **NO incluye warnings/notices de WordPress**
### 2. Archivo de Log WordPress (ACTIVO)
**Ubicación**: `wp-content/debug.log`
- ✅ Solo errores críticos de PHP (E_ERROR, E_PARSE, etc.)
- ❌ No incluye warnings, notices, deprecated
- ✅ Filtrado por `error_reporting()`
### 3. Base de Datos (DESACTIVADO)
**Tabla**: `wp_leadbox_logs`
- ⚠️ Actualmente desactivado (LEADBOX_LOG_TO_DATABASE = false)
- Para activar, cambiar a `true` en wp-config.php
- Visible en WordPress Admin: **Leadbox → Error Logs** (cuando está activo)
---
## 🧪 Cómo Probar el Logger
### Opción 1: Desde el Navegador (RECOMENDADO)
1. **Inicia Local by Flywheel**
2. **Visita**: `http://lbx.local/wp-content/plugins/leadbox-plugin/test-logger.php`
3. Verás un reporte completo con:
- 5 logs de prueba (DEBUG, INFO, WARNING, ERROR, CRITICAL)
- Estado del archivo debug.log
- Estado de la tabla de base de datos
- Últimos logs registrados
### Opción 2: Desde WordPress Admin
1. Inicia Local by Flywheel
2. Ve a **WordPress Admin**
3. Navega a **Leadbox → Error Logs**
4. Verás la interfaz visual de logs (si hay errores registrados)
### Opción 3: Trigger un Error Real
Desactiva temporalmente el API para ver cómo se loggea un error real:
1. Ve a cualquier página que use el API de Leadbox
2. El error se loggeará automáticamente
3. Revisa `wp-content/debug.log`
4. Revisa **Leadbox → Error Logs** en admin
---
## 📋 Comandos Útiles
### Ver logs de Leadbox en tiempo real:
```bash
tail -f /Users/lguillen/Local\ Sites/lbx/app/public/wp-content/leadbox-debug.log
```
### Ver últimas 50 líneas (Leadbox):
```bash
tail -50 /Users/lguillen/Local\ Sites/lbx/app/public/wp-content/leadbox-debug.log
```
### Limpiar logs de Leadbox:
```bash
> /Users/lguillen/Local\ Sites/lbx/app/public/wp-content/leadbox-debug.log
```
### Buscar errores específicos en Leadbox logs:
```bash
grep "ERROR" /Users/lguillen/Local\ Sites/lbx/app/public/wp-content/leadbox-debug.log
grep "CRITICAL" /Users/lguillen/Local\ Sites/lbx/app/public/wp-content/leadbox-debug.log
grep "Request: a1b2c3" /Users/lguillen/Local\ Sites/lbx/app/public/wp-content/leadbox-debug.log # Buscar por Request ID
```
### Ver errores críticos de WordPress:
```bash
tail -f /Users/lguillen/Local\ Sites/lbx/app/public/wp-content/debug.log
```
---
## 🎯 Ejemplos de Uso en Código
### Log básico:
```php
leadbox_logger()->error('API request failed', array(
'endpoint' => '/api/v1/vehicles',
'status_code' => 500,
));
```
### Log con interpolación:
```php
leadbox_logger()->info('User {user_id} viewed vehicle {vehicle_id}', array(
'user_id' => get_current_user_id(),
'vehicle_id' => 12345,
));
```
### Log en diferentes niveles:
```php
leadbox_logger()->debug('Cache hit', ['key' => 'inventory']);
leadbox_logger()->info('Lead created', ['lead_id' => 789]);
leadbox_logger()->warning('API slow', ['duration_ms' => 1500]);
leadbox_logger()->error('Failed to save', ['error' => $e->getMessage()]);
leadbox_logger()->critical('System down', ['component' => 'database']);
```
---
## 📊 Formato de Log en Archivo
### leadbox-debug.log (Leadbox logs estructurados):
```
[2025-12-09 10:30:45] ERROR: GraphQL request failed (Request: a1b2c3d4e5f6, User: 42)
Context: {"error_message":"Connection timeout","error_code":"http_request_failed","query":"..."}
[2025-12-09 10:31:02] INFO: Lead created (Request: a1b2c3d4e5f6, User: 42)
Context: {"lead_id":12345,"vehicle_id":67890,"source":"website"}
```
### debug.log (Solo errores críticos de PHP):
```
[09-Dec-2025 10:30:45 UTC] PHP Fatal error: Call to undefined function...
```
---
## 🔧 Configuración para Producción
Cuando vayas a producción, cambia en `wp-config.php`:
```php
// Solo errores críticos (no DEBUG ni INFO)
define( 'LEADBOX_LOG_LEVEL', 'error' );
// Desactivar database logging (mejor performance)
define( 'LEADBOX_LOG_TO_DATABASE', false );
// Mantener file logging
define( 'WP_DEBUG_LOG', true );
```
**Performance en Producción**:
- Con configuración de producción: <1ms overhead per error
- Solo loggea cuando hay problemas reales
- Zero impacto en requests normales
---
## 🚨 Troubleshooting
### "No logs en debug.log"
- ✅ Verifica que Local by Flywheel esté corriendo
- ✅ Verifica que `WP_DEBUG_LOG` esté en `true`
- ✅ Trigger un error manualmente (desactiva el API)
### "No veo la página Error Logs en admin"
- ✅ Asegúrate de estar logueado como admin
- ✅ El plugin Leadbox debe estar activo
- ✅ Busca: **Leadbox → Error Logs** en el menú lateral
### "Tabla wp_leadbox_logs no existe"
- ✅ Es normal, se crea en el primer ERROR log
- ✅ DEBUG e INFO no crean la tabla
- ✅ Trigger un ERROR level log para crear la tabla
---
## 📈 Monitoreo en Producción
### Configurar alertas externas:
```php
// En wp-config.php o functions.php
add_action('leadbox_log_entry', function($entry) {
if ($entry['level'] === 'CRITICAL') {
// Enviar email, Slack, PagerDuty, etc.
wp_mail('admin@site.com', 'CRITICAL ERROR', $entry['message']);
}
});
```
---
## ✨ Beneficios Implementados
1. ✅ **Logging estructurado** - Context + Request ID + User + Timestamp
2. ✅ **Múltiples niveles** - DEBUG, INFO, WARNING, ERROR, CRITICAL
3. ✅ **Múltiples destinos** - Archivo + Database (opcional)
4. ✅ **Interfaz visual** - WordPress Admin panel
5. ✅ **Production-safe** - Zero impacto con config correcta
6. ✅ **PSR-3 compliant** - Estándar de la industria
7. ✅ **Request tracking** - Trace full request flow con Request ID
---
## 📞 Siguiente Paso
**Prueba el logger ahora**:
1. Inicia Local by Flywheel
2. Visita: `http://lbx.local/wp-content/plugins/leadbox-plugin/test-logger.php`
3. Revisa los resultados
---
**Documentación**: Ver `lib/class-logger.php` para detalles técnicos
**Soporte**: Ver issue original HIGH-04