2

次のような状況があります。
クラス A、クラス B の 2 つのクラスがあります。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 を定義する方法はありますか?

4

1 に答える 1

0

私は、あなたと同じように構成された複数のファイルアペンダーを使用して、いくつかのプロジェクトに取り組んできました。私の知る限り、共通のアペンダー構成を定義して、それを複数のアペンダー間で共有する方法はありません。おそらく、log4net が XML タグをアペンダーのプロパティに解釈する方法と関係があります。(そして、私は をよく見ましたがForwardingAppender、そのために構築されていません)。


「同じことを繰り返さない」( DRY ) 以外に、構成をクリーンアップしたい理由はありますか? app.config (または web.config) が手に負えなくなった場合は、の構成ファイルを使用できます。

于 2011-06-15T04:50:30.460 に答える