2009-11-02 121 views
3

我試圖讓我的應用程序使用流利NHibernate和log4net啓用日誌記錄。我嘗試過描述here,here,herehere。日誌文件正在創建,但沒有寫入它。這個和其他應用程序的其他日誌文件都縫合工作正常,所以我假設這個問題是我的配置。Log4net的空NHibernate日誌文件

這裏是我已經到位,以試圖得到這個工作的代碼:

配置文件中的我所有的相關與這個APP log4net的設置部分:

<appender name="RollingFileAppenderNHibernate" 
     type="log4net.Appender.RollingFileAppender"> 
    <file value="C:\temp\RollingLogFileNHibernate" /> 
    <appendToFile value="true" /> 
    <ImmediateFlush value="true" /> 
    <rollingStyle value="Date" /> 
    <DatePattern value="yyyyMMdd.\l\o\g" /> 
    <StaticLogFileName value="false" /> 
    <MaxSizeRollBackups value="1" /> 
    <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" /> 
    </layout> 
</appender> 
<logger name="NHibernate.SQL" 
     additivity="false"> 
    <level value="ALL"/> 
    <appender-ref ref="RollingFileAppenderNHibernate"/> 
</logger> 

我的NHibernate配置:

public static ISessionFactory CreateSessionFactory() 
{ 
    return Fluently.Configure() 
     .Database(OracleClientConfiguration.Oracle10 
     .ConnectionString((conn => 
      conn.FromConnectionStringWithKey("APPDB"))) 
     .ShowSql()) 
     .Mappings(m => 
      m.FluentMappings.AddFromAssemblyOf<{ObjectName}>()) 
     .BuildSessionFactory(); 
} 

在Application_Start()我的Global.asax.cs的:

log4net.Config.XmlConfigurator.Configure(); 

我已經嘗試過幾種不同的設置,但結果總是相同的,一個空的日誌文件。

+0

這真的是你所有的配置?沒有元素,它肯定無法工作。 – 2009-11-03 08:59:58

+0

不,這不是我的全部配置,但它是與此APP相關的部分。我已經更新了這個問題,使這個事實更清楚一點。 – Hamman359 2009-11-03 15:05:43

回答

0

事實證明,這個問題與我們在log4net中使用框架代碼處理日誌過於複雜和複雜的方式有關。一旦我找出正確的箍筋來跳過日誌記錄開始正確工作。

0

如果XML是你的配置的真實repesentation,我可以看到兩個潛在的問題:

  1. 沒有「>」在附加器打開標籤的結束。
  2. 還有& gt;在佈局結束標記而不是'>'結束時。

當然,這些可能只是由複製和粘貼到這篇文章引起的。

+0

謝謝,那些複製和粘貼錯誤。我現在糾正了它們。 – Hamman359 2009-11-03 14:57:02