我有以下 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/