NHibernate y NLog fluidos

Tengo problemas con algunos errores vagos que aparecen en mi configuración fluida. He leído que configurar una solución de registro me ayudará a concentrarme en el problema. Me gustaría usar NLog. Entiendo que necesito usar Common.Logging 2.0 y NHibernate.IInterfaceLogger para ponerlo en funcionamiento. No estoy seguro de cómo juntar las piezas. Mi sistema se basa en la Arquitectura Cebolla. Tengo mi servicio de registro configurado para NLog y tengo mi interfaz para él, pero estoy un poco confundido sobre dónde debo vincular todo esto. Mi configuración Fluent NHibernate existe en mi proyecto de datos. Supongo que me gustaría unir todo esto allí.

¡Cualquier pensamiento sobre esto sería increíble! Estoy un poco perdido!

preguntado el 12 de junio de 12 a las 18:06

no estoy seguro acerca de NLog. pero tan pronto como agregue log4net a las referencias y configure. A NHibernate le encantará usarlo. ir a log4net. debe ser el registrador preferible IMO. -

El soporte de log4net está integrado en NH, pero muchas personas tienen muchos problemas para configurarlo, yo ciertamente lo hice. NLog parece mucho más simple, según las respuestas a continuación (no lo he probado yo mismo... todavía). -

1 Respuestas

NHibernate.NLog paquete nuget hace esto. Lo uso en un proyecto ahora.

En aras de la integridad o si ese paquete desaparece alguna vez o el usuario no usa nuget. Agregas esto a tu FluentConfiguration:

.ExposeConfiguration(c =>
    {
        c.SetProperty(@"nhibernate-logger", @"Microfilm.Core.NLogFactory, Microfilm.Core");
    })

Implementar ILoggerFactory para devolver una clase que implementa IInternalLogger. Es bastante sencillo qué incluir en el IInternalLogger métodos; solo está conectando las llamadas del registrador NHibernate a las llamadas NLog.

Respondido el 12 de junio de 12 a las 18:06

¿Probaste esto con Fluent Configuration? No funciona para mí y el código fuente de NHibernate.LoggerProvider muestra que obtiene la clase de la fábrica de registradores de la configuración de la aplicación exclusivamente. No hay respaldo a la configuración de NHibernate, por lo que config.SetProperty no puede funcionar. - daniel hilgarth

ese poco sobre .ExposeConfiguration is FluentNHibernate. Estoy usando FluentNHibernate v1.3 y NHibernate 3.2 - tostadas caseras

Como se mencionó en otras publicaciones, ExposeConfiguration no hizo nada por mí. Pero agregué esto a appSettings en web.config y funcionó bien: - Papa Borgoña

Tengo curiosidad por saber por qué .ExposeConfiguration no funciona para algunos. Es un método en la clase FluentConfiguration - tostadas caseras

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.