c# - 为什么这个 Fluent NHibernate Configuration 仍然将所有级别记录到 log4net?

标签 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 附加程序中。

如有任何指点或帮助,我们将不胜感激。

谢谢

最佳答案

据我了解,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>

关于c# - 为什么这个 Fluent NHibernate Configuration 仍然将所有级别记录到 log4net?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5418295/

相关文章:

c# - 使用 MongoDB 的 Linq 查询不能像 Func 那样工作

c# - 泛型构造要求类型 'Cell<' T>' 是非托管类型

为 32 位系统编译的 C# 程序和 C++ DLL 在 64 位系统上崩溃

fluent-nhibernate - FluentNHibernate 在不同机器上的行为不同

c# - 有没有更好的方法来调用 C# 中对象列表的比较?

nhibernate - 通过SQLite对.Net 4.0 NHibernate运行NUnit无法加载SQLite DLL

c# - 从 Entity_id 到 NHibernate 中的实体实例

c# - 删除抛出 "deleted object would be re-saved by cascade"

sql - NHibernate 不一致的 sql 列别名

.net - NHibernate:无法成功设置延迟加载