logging - 升级到 8.2/8.1 后,Sitecore 自定义日志不起作用?

标签 logging sitecore log4net 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>

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

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

最佳答案

我花了很长时间才弄清楚这一点,但事实证明,sitecore 已经改变了(像往常一样使用最少的信息)这些日志的注册方式。我找到了 buried in the release notes this line :

<log4net> section has been moved under <sitecore> node and now supports new support patching.



所以基本上他们已经移动到应该配置 log4net 部分的地方。它现在应该在 <sitecore> 下config 而不是直接在 <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 中删除这些日志的配置,上面现在不在根目录中。现在一切都按预期工作。

关于logging - 升级到 8.2/8.1 后,Sitecore 自定义日志不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41159902/

相关文章:

Sitecore - 不显示标准值

asp.net - Sitecore CustomValidator 不会在 WFFM 自定义字段上触发

c# - 为 log4net 配置自定义事件日志

html - 在浏览器中呈现终端输出

macos - 在 MacOS 上轻松从用户那里获取崩溃和日志信息

Sitecore EventQueue Table 增长失控

console - log4net 不会写入可视化 Web 开发人员控制台

tomcat - log4j 滚动文件(日志应用程序)

google-chrome - Chrome 开发工具控制台 : see toString representation of an object?

c# - Apache Ignite .Net - Log4Net 集成