我有多个记录器引用相同的(滚动文件)appender。 只有第一个记录器的输出出现在文件中。
是否可以使appender与多个记录器一起工作? (我想不是,但是在文档中没有找到任何信息,所以需要确认)。
(我知道有记录器继承,但我问的是非继承的“独立”记录器)
我的记录器配置如下
<logger name="a.b.c.Class1">
<level value="ALL"/>
<appender-ref ref="DebugAppender"/>
<appender-ref ref="ErrorsAppender"/>
</logger>
<logger name="a.b.c.Class2">
<level value="ALL"/>
<appender-ref ref="DebugAppender"/>
<appender-ref ref="ErrorsAppender"/>
</logger>
<logger name="a.b.c.Class3">
<level value="ALL"/>
<appender-ref ref="DebugAppender"/>
<appender-ref ref="ErrorsAppender"/>
</logger>
<logger name="a.b.c.Class4">
<level value="ALL"/>
<appender-ref ref="DebugAppender"/>
<appender-ref ref="ErrorsAppender"/>
</logger>
<logger name="a.d.e.Class5">
<level value="ALL"/>
<appender-ref ref="DebugAppender"/>
<appender-ref ref="ErrorsAppender"/>
</logger>
我的appender configuratoin如下
<appender name="DebugAppender" type="log4net.Appender.RollingFileAppender">
<file value="C:/Debug.log" />
<appendToFile value="true" />
<maximumFileSize value="256KB" />
<maxSizeRollBackups value="10" />
<param name="Threshold" value="DEBUG" />
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="Event: %d [%t] %-5p %c - %m%nProperties: %properties%n%n" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<levelMin value="DEBUG" />
<levelMax value="FATAL" />
</filter>
</appender>
<appender name="ErrorsAppender" type="log4net.Appender.RollingFileAppender">
<file value="C:/Errors.log" />
<appendToFile value="true" />
<maximumFileSize value="256KB" />
<maxSizeRollBackups value="10" />
<param name="Threshold" value="WARN" />
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="Event: %d [%t] %-5p %c %stacktrace - %m%nProperties: %properties%n%n" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<levelMin value="WARN" />
<levelMax value="FATAL" />
</filter>
</appender>
Log4net配置加载常规
log4net.Config.XmlConfigurator.Configure()