配置Appender

发布于 2024-09-24 01:25:00 字数 1323 浏览 8 评论 0原文

我有以下情况。
有 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>

如您所见,附加程序唯一不同的是它们写入日志的文件名。那么,有没有办法为给定的问题定义单个 RollingFileAppender 呢?

I have the following situation.
There are 2 classes: ClassA, ClassB. I want them to log in different files ClassA.log, ClassB.log. For this purpose I am using the RollingFileAppender. How can I write this in a shorter way than the following:

<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>

As you can see, the only thing the appenders differ is the filename where they are writing logs. So, is there a way to define a single RollingFileAppender for the given problem?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

沦落红尘 2024-10-01 01:25:00

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


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

I have worked on several projects with multiple file appenders configured just like yours. To my knowledge there is no way to define a common appender configuration and then share that among multiple appenders. It probably has something to do with how log4net interprets the XML tags into Properties on the appenders. (And I have looked closely at the ForwardingAppender, but it's not built for that).


Is there any reason other than "don't repeat yourself" (DRY) that you want to clean up the configuration? If your app.config (or web.config) is getting out of hand, you can use a separate configuration file.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文