为什么这个Fluent NHibernate配置仍然记录log4net的所有级别?

时间:2011-03-24 11:21:02

标签: c# nhibernate fluent-nhibernate

我有以下Fluent Nhibernate配置:

public ISessionSource CreateSessionSource()
        {

            var config = Fluently.Configure()
                .Database(MsSqlCeConfiguration
                              .Standard
                              .ConnectionString(connectionString)
                              .DoNot.ShowSql()
                              .UseOuterJoin()
                              .UseReflectionOptimizer())
                .Mappings(GetMappings)
                .Diagnostics(x => x.Enable(false))
                .ExposeConfiguration(ExposeConfiguration);

            Factory.RegisterSingleton(config);

            var source = new SessionSource(config);

            return source;
        }

我已经明白.Diagnostics(x => x.Enable(false))会阻止日志记录,但我仍然会将整个DEBUG,INFO,ERROR,FATAL级别记录到我的log4net appenders。

任何指示或帮助都将不胜感激。

由于

1 个答案:

答案 0 :(得分:5)

据我了解,Diagnostics方法控制Fluent NHibernate的日志记录级别,而不是NHibernate。应该在配置文件中设置NHibernate的log4net日志记录级别:

<log4net>
    <root>
      <appender-ref ref="SqlServerAppender" />
      <level value="ERROR" />
    </root>
    <logger name="NHibernate">
      <level value="ERROR" />
    </logger>
    <!-- etc -->
</log4net>