2013-08-26 48 views
2

我已编程方式从配置文件创建log4net的日志:配置NHibernate的登录文件

var properties = new NameValueCollection 
      { 
       {"configType", "FILE"}, 
       {"configFile", @"c:/log4net.config"} 
      }; 
Common.Logging.LogManager.Adapter = new Common.Logging.Log4Net.Log4NetLoggerFactoryAdapter(properties); 

这是我log4net.config(编辑整理为简单起见鸽子建议)

<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> 

我有春天.NET成功登录到该文件,但不是NHibernate。 NHibernate的是fluenltly配置:

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(); 
    } 

我应该怎么解决让NHibernate的日志工作?

回答

2

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

Configuration.ExposeConfiguration(c => 
      c.SetProperty("generate_statistics", "true")); 

为了缩小范围,你可以从记录仪中取出加标志和appeder和只要登录一个开始,即正是这样

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

难道涉及到MS SQL Server版本?我有2008R2快递。 – dbardakov

+0

试过NHTrace没有结果(仍然是空的SLQ日志) – dbardakov

+0

可能与Express有关,你使用的是什么nhibernate配置设置?检查http://stackoverflow.com/questions/9495525/how-connect-nhibernate-to-local-sqlexpress确保你有正确的方言和驱动程序 – dove