我们的一个 WebApi 最近停止输出日志。在跟踪文件中,我们收到以下消息:
log4net:错误 XmlHierarchyConfigurator:找不到属性 [filter] 在 [log4net.Repository.Hierarchy.Hierarchy] 上设置对象
配置文件如下所示,我假设错误中的过滤器与配置中的过滤器相同,所以我不确定为什么找不到它。 我升级到了 log4net 的最新版本,并解决了几天的问题,然后我们再次收到“找不到属性 [过滤器]”错误。在此期间配置文件根本没有改变。
<configuration>
<configSections>
<section name="log4net"
type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<log4net>
<root>
<level value="ALL" />
<appender-ref ref="RollingFileAppender"/>
</root>
<filter type="log4net.Filter.LevelMatchFilter">
<acceptOnMatch value="true" /> <!--change to false to exclude info logs -->
<levelToMatch value="INFO" />
</filter>
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="Logs/Log.txt" />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="1001KB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level: %message%newline" />
</layout>
</appender>
</log4net>
</configuration>
很奇怪,工作了一段时间,停止了,升级,工作了一段时间,停止了。我不知道什么可能会改变让它停止工作。
预先感谢您的帮助。
最佳答案
您的配置无效。
过滤器只能在附加程序中定义。
Filters elements may only be defined as children of <appender> elements.
将过滤器定义移动到附加程序,如下所示。
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<filter type="log4net.Filter.LevelMatchFilter">
<acceptOnMatch value="true" /> <!--change to false to exclude info logs -->
<levelToMatch value="INFO" />
</filter>
<file value="Logs/Log.txt" />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="1001KB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level: %message%newline" />
</layout>
</appender>
(我无法解释为什么错误只在某些/随机时间发生;可能它在配置时(例如,网站/应用程序域回收后)(重新)发生)...
最后,Log4net 尝试尽可能地继续下去。
关于XmlHierarchyConfigurator 出现 Log4net 错误。缺少过滤器属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56446928/