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.