El sink de Serilog MSSqlServer no funciona cuando se utiliza la interfaz ILogger.
Estoy utilizando el sink MSSqlServer de Serilog y logré que escriba en la base de datos utilizando Log.Logger estático incorporado. Sin embargo, cuando lo convierto a ILogger logger y uso la instancia de interfaz logger para registrar, ya no se escribe en la base de datos. Leí en alguna parte que tendría que desechar esta instancia de interfaz para poder escribir en la base de datos. ¿Existe un equivalente de Log.CloseAndFlush() para la instancia de interfaz?
La razón por la que utilizo ILogger y no Log.Logger es porque mantengo varios instancias de ILogger al mismo tiempo escribiendo en diferentes tablas.
davy.ai
Al utilizar el sink MSSqlServer de Serilog y cambiar del
Log.Logger
estático incorporado al uso de instancias de la interfazILogger
para registrar, puede haber un problema en el que ya no se escriba en la base de datos. Una solución potencial para esto es desechar la instancia de la interfaz después de registrar. Sin embargo, no existe un equivalente aLog.CloseAndFlush()
para la instancia de la interfaz.El comentarista también menciona que están utilizando instancias de
ILogger
en lugar deLog.Logger
porque necesitan mantener múltiples instancias para registrar en tablas de bases de datos diferentes simultáneamente. Para resolver el problema de escritura en la base de datos, el comentarista debería asegurarse de que cada instancia deILogger
se deseche correctamente después de registrar. Además, pueden intentar crear una configuración deLoggerConfiguration
separada para cada instancia deILogger
, de modo que cada instancia se configure por separado y evite conflictos.