XmlHierarchyConfigurator 出现 Log4net 错误。缺少过滤器 属性
Log4net error with XmlHierarchyConfigurator. Missing Filter Property
我们的一个 WebApis 最近停止输出日志。在跟踪文件中,我们收到此消息:
log4net:ERROR XmlHierarchyConfigurator: 找不到 属性 [过滤器] 以在 [log4net.Repository.Hierarchy.Hierarchy]
上设置对象
配置文件如下所示,我假设错误中的过滤器与配置中的过滤器相同,所以我不确定为什么找不到它。
我升级到最新版本的 log4net 并解决了几天的问题,然后我们再次遇到 "Cannot find Property [filter]" 错误。配置文件在此期间完全没有改变。
<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>
奇怪,用了一会儿,停了,升级了,用了一会儿,停了。我不知道可以改变什么让它停止工作。
在此先感谢您的帮助。
您的配置无效。
过滤器只能在 appender 中定义。
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>
(我无法解释为什么错误只发生在 certain/random 次;可能它(重新)发生在配置时间,例如在 website/appdomain 回收之后) ...
最后,Log4net 会尽量继续下去。
我们的一个 WebApis 最近停止输出日志。在跟踪文件中,我们收到此消息:
log4net:ERROR XmlHierarchyConfigurator: 找不到 属性 [过滤器] 以在 [log4net.Repository.Hierarchy.Hierarchy]
上设置对象配置文件如下所示,我假设错误中的过滤器与配置中的过滤器相同,所以我不确定为什么找不到它。 我升级到最新版本的 log4net 并解决了几天的问题,然后我们再次遇到 "Cannot find Property [filter]" 错误。配置文件在此期间完全没有改变。
<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>
奇怪,用了一会儿,停了,升级了,用了一会儿,停了。我不知道可以改变什么让它停止工作。
在此先感谢您的帮助。
您的配置无效。
过滤器只能在 appender 中定义。
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>
(我无法解释为什么错误只发生在 certain/random 次;可能它(重新)发生在配置时间,例如在 website/appdomain 回收之后) ...
最后,Log4net 会尽量继续下去。