自升级到8.2/8.1后,Sitecore自定义日志无法正常工作?

Lia*_*iam 3 logging log4net sitecore sitecore8

在我的web.config中,我定义了一些自定义log4net错误记录器:

 <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>
Run Code Online (Sandbox Code Playgroud)

这些一直都很好.当我将sitecore从8.0升级到8.1(以及随后的8.2)时,我的所有记录器突然停止工作.发送到自定义日志的所有日志刚刚开始出现在默认的log.log文件中,并且没有创建任何自定义日志.

为什么?我怎样才能解决这个问题?

Lia*_*iam 5

我花了很长时间来弄明白这一点,但事实证明,sitecore已经改变了这些日志的注册方式(通常只有最少的信息).我发现埋在发行说明中这一行:

<log4net>section已在<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>
Run Code Online (Sandbox Code Playgroud)

您还应该在web.config中删除这些日志的配置,现在上面的内容不在根目录中.现在一切都按预期工作.