禁用NHibernate日志logging

我有一个空的 app.config文件,但我仍然得到NHibernatedebugging日志

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 ... 

我尝试添加一个ERROR日志级别的log4netconfiguration,但没有用。 我怎样才能停止这些日志消息?

我感到困惑的是为什么这些出现在第一个地方,如果我有一个空的app.config。 对我来说这是没有意义的,我必须configuration它不打印这些消息 – 默认应该closures。 难道是我的代码是以编程方式设置它们吗? 我该找什么?

configurationLog4Net与NHibernate一起使用可能会有帮助。

你需要有这两个logging器:

  <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()) 

删除.ShowSql()为我工作

问题出在“我的代码”的某处。 我们手动构buildNHibernateconfiguration(将show_sql标志设置为true)。

对我来说这是NUnit问题。 在TeamCity中运行testing时,额外的日志logging正在发生,它必须使用不同版本的nunit

NHibernate的日志不帮我很多…我更喜欢这些设置:

  <logger name="NHibernate"> <level value="OFF" /> </logger> <logger name="NHibernate.SQL"> <level value="OFF" /> </logger> 

你想在NHibernate级别或Log4Net级别禁用日志logging吗?

我通过将“show_sql”variables设置为false来做前者。 我现在正在用C#编程,但是我认为这也很容易放入XMLconfiguration文件中。

你使用的是NUnit 2.4.6吗? 我昨天读了这篇博文,其中说这个版本的NUnit设置log4net使用DEBUG级别的日志logging,也影响NHibernate。

如果它不是NUnit,而不是你,我会检查它是否是你正在使用的其他第三方库。

编辑

第二个想法,我不认为输出与log4net有关。 格式看起来更像是“show_sql”控制的输出。 我会检查两件事情:1.如果正确的(与show_sql = false的)hibernate.config复制到您的执行目录。 2.如果show_sqlconfiguration属性在代码中没有被手动覆盖。