将Nhibernate日志配置到文件中

将Nhibernate日志配置到文件中,nhibernate,log4net,common.logging,Nhibernate,Log4net,Common.logging,我已通过编程从配置文件创建log4net日志: var properties = new NameValueCollection { {"configType", "FILE"}, {"configFile", @"c:/log4net.config"} }; Common.Logging.LogManager.Adapter = new Common.Logging.Log4Net.

我已通过编程从配置文件创建log4net日志:

var properties = new NameValueCollection
            {
                {"configType", "FILE"},
                {"configFile", @"c:/log4net.config"}
            };
Common.Logging.LogManager.Adapter = new Common.Logging.Log4Net.Log4NetLoggerFactoryAdapter(properties);
这是我的
log4net.config
(按照dove的建议为简单起见而编辑)

<log4net>
<appender name="RollingFile" type="log4net.Appender.RollingFileAppender">
    <file value="c:/log.log" />
    <appendToFile value="true" />
    <maximumFileSize value="100KB" />
    <maxSizeRollBackups value="5" />

    <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%d [%t] %-5p %c - %m%n" />
    </layout>
</appender>

<root>
    <level value="All" />
    <appender-ref ref="RollingFile" />  
</root> 
<logger name="NHibernate">
    <level value="All" />
    <appender-ref ref="RollingFile" />
</logger>       

</log4net>

我成功地让Spring.NET登录到该文件,但没有登录到NHibernate。 Nhibernate配置流畅:

protected override void PostProcessConfiguration(Configuration config)
{           
    base.PostProcessConfiguration(config);
        var msSqlCfg = MsSqlConfiguration.MsSql2000.ConnectionString(ConnectionString)
            .ShowSql();

        Fluently.Configure(config).Database(msSqlCfg)
                .Mappings(m => m.FluentMappings.Add<EmployeeMap>())
                // Other mappings            
                .BuildSessionFactory();
    }
受保护覆盖无效后处理配置(配置配置)
{           
base.PostProcessConfiguration(配置);
var msSqlCfg=MsSqlConfiguration.MsSql2000.ConnectionString(ConnectionString)
.ShowSql();
fluntly.Configure(config).Database(msSqlCfg)
.Mappings(m=>m.FluentMappings.Add())
//其他映射
.BuildSessionFactory();
}

要使Nhibernate日志正常工作,我应该解决什么问题?

如果生成统计信息,它会记录吗

Configuration.ExposeConfiguration(c => 
            c.SetProperty("generate_statistics", "true"));
要缩小范围,可以从logger中删除additivity标志和appeder,然后只记录一个即可启动,即完全像这样

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


它是否与Ms Sql Server edition相关?我有2008R2 Express。尝试了NHTrace但没有结果(SLQ日志仍然为空)可能与Express有关,您使用了什么nhibernate配置设置?检查以确保您使用正确的方言和驱动程序