2

我有以下情况。
有2类:A类,B类。我希望他们登录不同的文件 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 呢?

4

1 回答 1

0

我参与了几个项目,其中配置了多个文件附加器,就像你的一样。据我所知,没有办法定义一个通用的 appender 配置,然后在多个 appender 之间共享。它可能与 log4net 如何将 XML 标记解释为附加程序上的属性有关。(我已经仔细查看了ForwardingAppender,但它不是为此而构建的)。


除了“不要重复自己”(DRY)之外,还有什么理由要清理配置吗?如果您的 app.config(或 web.config)失控,您可以使用单独的配置文件。

于 2011-06-15T04:50:30.460 回答