Skip to main content

Registro (Logging)

Visión general​

Crono se apoya en Microsoft.Extensions.Logging para el registro estructurado de la aplicación. Además, cuenta con mecanismos de más alto nivel para dejar traza del negocio: el rastreo de actividad (acciones y rutas de los usuarios), la auditoría de entidades y la bitácora de eventos de negocio.

Escribir entradas de registro​

Inyecta ILogger<T> en cualquier servicio o controlador para escribir mensajes estructurados:

public class MiServicio
{
private readonly ILogger<MiServicio> _registrador;

public MiServicio(ILogger<MiServicio> registrador)
{
_registrador = registrador;
}

public void Procesar()
{
_registrador.LogInformation("Proceso iniciado");
}
}

Como alternativa, Crono puede inyectar el registrador mediante una propiedad pública. Se declara con un NullLogger por defecto para que nunca sea nulo; el contenedor la reemplaza por un registrador contextual en tiempo de ejecución:

public ILogger Registrador { get; set; } = NullLogger.Instance;

Los controladores que heredan de CronoController ya declaran esta propiedad Registrador, así que normalmente solo la añades a servicios personalizados que necesiten registro opcional sin inyección por constructor.

Rastreo de actividad​

IRastreoActividadServicio registra acciones de alto nivel de los usuarios (por ejemplo, la actividad y las rutas de los asesores en campo). Cada entrada (RastreoActividad) guarda su tipo (RastreoActividadTipo), el usuario y los datos de contexto:

await _rastreoActividadServicio.RegistrarActividadAsync(new RegistrarActividadDto
{
// datos de la actividad
});

El RastreoActividadMiddleware captura automáticamente el contexto de cada solicitud (IP, URL, usuario) y el atributo RastreoActividad permite marcar acciones concretas para su registro. Estos datos alimentan, entre otros, el seguimiento de ubicación y actividad por usuario y día.

Auditoría de entidades​

Los cambios sobre las entidades que implementan IAuditable se rellenan automáticamente (fechas y usuario de creación/modificación) mediante el AuditoriaInterceptor (ver Interceptores). De este modo, cada entidad auditable conserva su rastro de creación y última modificación sin código adicional.

Bitácora de eventos de negocio​

Para trazar operaciones del dominio (desembolsos, pagos, cambios de estado, reprogramaciones, etc.) Crono mantiene una bitácora persistente de Eventos de Negocio, descrita en Eventos. A diferencia del registro técnico (ILogger), esta bitácora está pensada para el historial funcional que se muestra en el detalle del préstamo y del cliente.