Deshabilitar el registro de NHibernate
logging log4net (7)
¿Desea desactivar el registro en el nivel NHibernate o en el nivel Log4Net?
Estoy haciendo lo primero al establecer la variable "show_sql" en falso. Estoy haciendo esto programáticamente en C # en este momento, pero supongo que esto también sería fácil de poner en un archivo de configuración XML.
Tengo un archivo app.config vacío , pero todavía recibo los registros de depuración NHibernate
NHibernate: SELECT this_.LogID as LogID71_0_, this_.Level as Level71_0_, this_.Message as Message71_0_, this_.EventTime as EventTime71_0_, this_.Component as ...
Intenté agregar una configuración de log4net con un nivel de registro de ERROR, pero sin uso. ¿Cómo puedo detener estos mensajes de registro?
Lo que me deja perplejo es por qué aparecen en primer lugar si tengo una aplicación vacía. Estoy de acuerdo. No tiene sentido para mí que tenga que configurarlo para que no se impriman estos mensajes; el valor predeterminado debe estar desactivado. ¿Podría ser que mi código los esté configurando programáticamente de alguna manera? ¿Que debería buscar?
¿Estás usando NUnit 2.4.6? Leí this publicación de blog ayer que dice que esta versión de NUnit establece log4net para usar el registro de nivel de DEPURACIÓN, afectando a NHibernate también.
si no es NUnit y no eres tú, verificaría si está utilizando alguna otra biblioteca de terceros.
EDITAR
Pensándolo bien, no creo que la salida tenga algo que ver con log4net. el formato se parece más a la salida controlada "show_sql". Verificaría dos cosas: 1. Si se copia el correcto (el que tiene show_sql = false) hibernate.config a su directorio de ejecución. 2. Si la propiedad de configuración show_sql no se reemplaza manualmente en su código.
El problema estaba en algún lugar de "mi código". Construimos la configuración de NHibernate manualmente (configurando el indicador show_sql en verdadero).
Los registros de NHibernate no me ayudan mucho ... Me gustan más estas configuraciones:
<logger name="NHibernate">
<level value="OFF" />
</logger>
<logger name="NHibernate.SQL">
<level value="OFF" />
</logger>
Para mí fue el problema de NUnit. El registro adicional estaba sucediendo al ejecutar las pruebas en TeamCity, que debe haber estado usando una versión diferente de nunit
Configurar Log4Net para usar con NHibernate puede ser útil.
Necesita tener estos dos registradores:
<logger name="NHibernate">
<level value="ERROR" />
</logger>
<logger name="NHibernate.SQL">
<level value="ERROR" />
</logger>
return Fluently.Configure()
.Database(MsSqlConfiguration.MsSql2005.ConnectionString(
c => c.FromConnectionStringWithKey("MyDB")).ShowSql())
Eliminar el .ShowSql()
funcionó para mí