es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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.

Tags:  

Answer

  1. Avatar for davy.ai

    Al utilizar el sink MSSqlServer de Serilog y cambiar del Log.Logger estático incorporado al uso de instancias de la interfaz ILogger 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 a Log.CloseAndFlush() para la instancia de la interfaz.

    El comentarista también menciona que están utilizando instancias de ILogger en lugar de Log.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 de ILogger se deseche correctamente después de registrar. Además, pueden intentar crear una configuración de LoggerConfiguration separada para cada instancia de ILogger, de modo que cada instancia se configure por separado y evite conflictos.

Comments are closed.