我有以下情况 有两个类:ClassA,ClassB。我希望他们登录不同的文件ClassA.log,ClassB.log。为此我使用RollingFileAppender。我怎么能用比以下更短的方式写这个:
<appender name="RollingFileAppenderA" type="log4net.Appender.RollingFileAppender">
<file value="ClassA.log" />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="100KB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
</layout>
</appender>
<appender name="RollingFileAppenderB" type="log4net.Appender.RollingFileAppender">
<file value="ClassB.log" />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="100KB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
</layout>
</appender>
正如您所看到的,appender唯一不同的是它们写日志的文件名。那么,有没有办法为给定的问题定义一个RollingFileAppender?
答案 0 :(得分:0)
我已经处理了几个项目,其中配置了多个像您一样的文件追加器。据我所知无法定义常见的appender配置,然后在多个appender之间共享。它可能与log4net如何将XML标记解释为appender上的Properties有关。 (我仔细研究了ForwardingAppender
,但它不是为此而建的。)
除了“不重复自己”(DRY)之外,还有其他原因要清理配置吗?如果你的app.config(或web.config)失控,你可以使用separate配置文件。