Los “logs del sistema” de Trazo no son un volcado de texto: son eventos relevantes, agrupados. Una misma falla cae siempre en la misma fila (por su huella) y suma a su contador, en lugar de llenar la pantalla de repetidos. Solo el Super admin los ve (system.logs.view).
Qué se registra: errores 500, jobs que fallan, piezas caídas (Redis, Reverb, worker) y cola acumulada, ingresos bloqueados, MFA cortado por intentos, códigos de recuperación de contraseña anulados, Have I Been Pwned sin responder, reautenticación bloqueada y 10 accesos denegados en 5 minutos. No se registran tokens vencidos, errores de validación, 404 normales ni intentos de ingreso aislados.
Paso a paso
- OrigenOcurre algo relevante
Desde cualquier módulo, por el puerto compartido
SystemEvents, con el tipo y su origen (por ejemploredis, o la cuenta enmascaradaa***@dominio). - OrigenCalcula la huella del tipo y el origen
SHA-256 de "tipo|origen". El contexto no lleva secretos; de un error de base de datos solo se guarda el SQLSTATE.
- Base de datosInserta o suma en una sola sentencia
INSERT … ON DUPLICATE KEY UPDATE: si la huella ya existe, subeoccurrences, actualiza la última vez y el mensaje, y si estaba resuelto lo reabre. Nunca lanza: registrar un evento no puede tumbar la petición que lo originó. - Super adminAbre Sistema › Eventos
Vista Pendientes, Resueltos o Todos, con severidad (info, warning, critical) y tipo; filtros en la dirección.
- Super adminAbre un evento
Mensaje, contexto, ocurrencias, primera y última vez y
trace_idpara buscarlo en los registros del servidor. - Super admin¿Qué hace con él?
- Base de datosQueda revisado, con quién y cuándo
Sigue sumando si vuelve a pasar.
- Base de datosQueda resuelto hasta que se repita
Si vuelve a ocurrir, se reabre solo. Los resueltos de más de 90 días se borran cada día (
SYSTEM_EVENTS_RETENTION_DAYS).
Qué ve la persona en cada error
| Código | HTTP | Cuándo | Mensaje en pantalla |
|---|---|---|---|
SYSTEM_EVENT_NOT_FOUND | 404 | El evento se borró por antigüedad | Ese evento ya no existe: se borró por antigüedad. Actualiza la lista. |
FORBIDDEN_ACTION | 403 | Sin system.logs.view | No tienes permiso para hacer esta acción. Si crees que deberías tenerlo, habla con un administrador. |
Dónde está en el código
DatabaseSystemEventsyFingerprint: registro agrupado.FailureEventsybootstrap/app.php: errores 500.WatchDeniedAccess: accesos denegados repetidos.ManageSystemEvents: listar y cambiar el estado.useSystemEvents.- Explicación: Módulo System.