配置Appender

时间:2010-09-16 12:17:51

标签: log4net log4net-configuration

我有以下情况 有两个类: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?

1 个答案:

答案 0 :(得分:0)

我已经处理了几个项目,其中配置了多个像您一样的文件追加器。据我所知无法定义常见的appender配置,然后在多个appender之间共享。它可能与log4net如何将XML标记解释为appender上的Properties有关。 (我仔细研究了ForwardingAppender,但它不是为此而建的。)


除了“不重复自己”(DRY)之外,还有其他原因要清理配置吗?如果你的app.config(或web.config)失控,你可以使用separate配置文件。