2013-08-26 79 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