禁用NHibernate日志记录

rip*_*234 51 nhibernate logging log4net

我有一个空的 app.config文件,但我仍然得到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 ...
Run Code Online (Sandbox Code Playgroud)

我尝试添加一个带有ERROR日志级别的log4net配置,但没有用.如何停止这些日志消息?

我很困惑的是,如果我有一个空的app.config,为什么这些出现在第一位.对我来说没有意义,我必须配置它不打印这些消息 - 默认应该关闭.可能是我的代码以某种方式以编程方式设置它们吗?我应该寻找什么?

kgi*_*kis 84

配置Log4Net以与NHibernate一起使用可能会有所帮助.

你需要有这两个记录器:

 <logger name="NHibernate">
   <level value="ERROR" />
 </logger>

 <logger name="NHibernate.SQL">
   <level value="ERROR" />
 </logger>
Run Code Online (Sandbox Code Playgroud)

  • log4net实际上匹配以指定名称开头的记录器名称,因此将"NHibernate"过滤掉每个NHibernate消息. (3认同)
  • 不工作,请参阅更新的问题(我添加了相应的log4net配置部分,没有效果). (2认同)
  • 得爱stackoverflow.+1 (2认同)

jen*_*ent 14

return Fluently.Configure()
            .Database(MsSqlConfiguration.MsSql2005.ConnectionString(
                c => c.FromConnectionStringWithKey("MyDB")).ShowSql())
Run Code Online (Sandbox Code Playgroud)

删除.ShowSql()为我工作


rip*_*234 6

问题出在"我的代码"中.我们手动构建NHibernate配置(将show_sql标志设置为true).