我建议也使用过滤器。但是,由于在尝试实现过滤器时很难找到整个图片,因此我发布了Configutation file
我创建的样本片段,指出了过滤器的位置。
在这种情况下,您要使用的过滤器是
log4net.Filter.LoggerMatchFilter ----(与记录器名称的开头匹配。)
提示:在Log4Net的config
文件中,放置标签和标签的优先级实际上很重要。因此,在这种情况下,标签位于开始标签之后和标签之前。<filter>
<appender>
<file value = ... />
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<log4net>
<appender name="RollingFile.PassedDevices" type="log4net.Appender.RollingFileAppender">
<filter type="log4net.Filter.LoggerMatchFilter">
<loggerToMatch value="Foo.namespace.bar.mySubclass" />
<acceptOnMatch value="false" />
</filter>
<file value="myPassedDevices.log" />
<appendToFile value="true" />
<maximumFileSize value="100KB" />
<maxSizeRollBackups value="2" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%timestamp %level - %message [%thread] %logger%newline" />
</layout>
</appender>
<root>
<level value="DEBUG" />
<appender-ref ref="RollingFile" /> <!-- My other appender which logs all and I cut it out in this snippet. Remember that you should reference all your appenders in this tag to make them work.-->
<appender-ref ref="RollingFile.PassedDevices" />
</root>
</log4net>
</configuration>
在此技术中,您可以具有多个appenders
,可以将特定记录器的记录结果重定向到单独的记录,appender
而不是忽略它们。例如,一个appender
用于所有日志,一个用于过滤特定日志class
。