laravel-vuexy-admin/docs/Helpers/system-logger-helper-guide.md
2025-05-11 14:14:50 -06:00

3.9 KiB

Koneko System Logger Helper Guide

El sistema de logs de sistema en Koneko ERP permite registrar eventos importantes de forma estructurada, segura y extensible. A través del helper log_system() se abstrae la lógica de registro para facilitar su uso sin exponer la clase subyacente KonekoSystemLogger.

¿Cuándo usar log_system()?

Este helper debe utilizarse para registrar:

  • Operaciones del sistema (módulos, configuración, instalación de paquetes)
  • Procesos técnicos (errores, warnings, notificaciones internas)
  • Eventos relevantes relacionados con lógica de negocio o flujos administrativos

📦 Helper: log_system()

log_system(
    string|LogLevel $level,
    string $message,
    array $context = [],
    ?Model $related = null
): SystemLog

Parámetros

Nombre Tipo Descripción
$level string|LogLevel Nivel del log (info, warning, error, critical, etc.)
$message string Mensaje a registrar
$context array Datos adicionales relevantes al evento
$related `Model null`

🎯 Ejemplos de uso

Log simple con nivel:

log_system('info', 'Inicio del proceso de sincronización');

Log con contexto personalizado:

log_system('error', 'Error al procesar factura CFDI', [
    'cfdi_id' => 3345,
    'error' => $exception->getMessage(),
]);

Log vinculado a un modelo:

log_system(
    'warning',
    'El producto fue modificado manualmente',
    ['user' => auth()->id()],
    $product
);

🧱 Internamente...

  • Se utiliza el modelo Koneko\VuexyAdmin\Models\SystemLog
  • Soporta morphTo() para asociar cualquier modelo relacionado (via related_model)
  • Se castea level como Enum LogLevel
  • Se incluye automáticamente el componente si está registrado vía KonekoComponentContextRegistrar

🛡️ Buenas prácticas

  • Usa niveles correctos (info, debug, warning, error, critical) según la gravedad
  • Agrega siempre contexto útil que facilite auditoría
  • Usa related cuando el evento está directamente vinculado a un modelo (como un Pedido, Producto, etc.)
  • Si estás en un módulo registrado, el helper asocia automáticamente el componentNamespace

🔐 Soporte a auditoría

log_system() es parte fundamental del sistema de trazabilidad técnica del ERP. Todos los registros quedan disponibles para consulta por el módulo de Auditoría o Seguridad Avanzada si está habilitado.


📍 Registro automático de módulo

Si el componente actual fue registrado mediante:

KonekoComponentContextRegistrar::registerComponent('admin');

El log quedará asociado a module = 'admin', sin necesidad de especificarlo manualmente.


📚 Relación con otros loggers

Helper Propósito
log_system() Logs técnicos y operativos
log_security() Eventos de seguridad (auth, IP)
log_interaction() Interacciones del usuario final

🧪 Testing y ambiente local

En local o staging, es común agregar logs temporales para diagnóstico:

log_system('debug', 'Revisando flujo de pago', ['step' => 3]);

Recuerda que estos deben eliminarse o ajustarse a info en producción.


🧭 Ubicación del modelo

Koneko\VuexyAdmin\Models\SystemLog

Puedes extender la funcionalidad desde el modelo si se requiere una visualización especial para auditoría o tablas administrativas.


Este helper está diseñado para desarrolladores del ecosistema Koneko. Evita el uso directo de KonekoSystemLogger salvo en integraciones muy especializadas.