2016-12-15 109 views
3

在我的web.config我有一些自定義log4net的錯誤記錄器定義:自升級到8.2/8.1後,Sitecore定製日誌無法正常工作?

<configuration> 
    <log4net> 
     <appender name="RR.Db" type="log4net.Appender.SitecoreLogFileAppender, Sitecore.Logging"> 
      <file value="$(dataFolder)/logs/RR.Db.{date}.txt" /> 
      <appendToFile value="true" /> 
      <layout type="log4net.Layout.PatternLayout"> 
       <conversionPattern value="%4t %d{ABSOLUTE} %-5p %m%n" /> 
      </layout> 
      <encoding value="utf-8" /> 
     </appender> 
     <logger name="RR.Db" additivity="false"> 
      <level value="INFO"/> 
      <appender-ref ref="RR.Db"/> 
     </logger> 
     .... 
    </log4net> 
</configuration> 

這些已經工作正常了一段時間。當我將sitecore從8.0升級到8.1(和隨後的8.2)時,我的所有記錄器突然停止工作。發送到定製日誌的所有日誌剛剛開始出現在默認的log.log文件中,並且沒有創建任何自定義日誌。

爲什麼?我怎樣才能解決這個問題?

回答

4

花了我很長時間才弄明白,但事實證明,sitecore已經改變了(像往常一樣信息最少)如何對這些日誌進行註冊。我發現buried in the release notes this line

<log4net>部分已根據<sitecore>節點移動現在 支持新的支持補丁。

所以基本上他們已經移動了應該配置log4net部分的地方。它現在應該在<sitecore>配置下,而不是直接在<configuration>之下,在此之前/在每個其他使用log4net的應用程序中。

我通過添加一個新的.config文件,/App_config/Include/logging.xx.config來解決這個問題。在這個文件中我添加從web.config的配置稍做調整:

<?xml version="1.0"?> 
<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/" xmlns:x="http://www.sitecore.net/xmlconfig/"> 
    <sitecore> 
     <log4net> 
      <appender name="RR.Db" type="log4net.Appender.SitecoreLogFileAppender, Sitecore.Logging"> 
       <file value="$(dataFolder)/logs/RR.Db.{date}.txt" /> 
       <appendToFile value="true" /> 
       <layout type="log4net.Layout.PatternLayout"> 
        <conversionPattern value="%4t %d{ABSOLUTE} %-5p %m%n" /> 
       </layout> 
       <encoding value="utf-8" /> 
      </appender> 
      <logger name="RR.Db" additivity="false"> 
       <level value="INFO"/> 
       <appender-ref ref="RR.Db"/> 
      </logger> 
      .... 
     </log4net> 
    </sitecore> 
</configuration> 

你也應該刪除配置在web.config這些日誌,上面是現在在哪裏住這不是在根。現在一切都按預期工作。

+0

我見過這種情況發生在Sitecore的配置XML的其他部分之前。 – DougCouto

+0

難怪我找不到調試/信息診斷信息..你好道格! –