2016-12-15 111 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

难怪我找不到调试/信息诊断信息..你好道格! –