2

奇妙な問題があります。全員が同じファイルを参照する複数のローリング ファイル アペンダーを作成しようとしていますが、一度に使用するのはこれらのアペンダーの 1 つだけです。

問題は、アペンダーを次のように宣言した場合です。

<appender name="APP1" type="log4net.Appender.RollingFileAppender">
  <file value="C:\Log.txt" />
  <layout type="log4net.Layout.PatternLayout,log4net">
    <conversionPattern value="%date [%thread] %-5level %logger [%ndc] - message%newline" />
  </layout>
 </appender>
<logger name="APP1" additivity="false">
  <level value="DEBUG" />
  <appender-ref ref="APP1" />
</logger>
<appender name="APP2" type="log4net.Appender.RollingFileAppender">
  <file value="C:\Log.txt" />
  <layout type="log4net.Layout.PatternLayout,log4net">
    <conversionPattern value="%date [%thread] %-5level %logger [%ndc] - message%newline" />
  </layout>
 </appender>
<logger name="APP2" additivity="false">
  <level value="DEBUG" />
  <appender-ref ref="APP2" />
</logger>

次に、「APP1」ロガーは問題なくファイルに書き込みますが、最初のロガーのみを取得する場合のように、「APP2」ロガーは書き込みません。明らかに、2 つのロガーを入れ替えると、「APP2」ではすべてが機能しますが、「APP1」では機能しません。

また、追加が失敗すると、デバッグウィンドウでこれを見ることができます:

log4net: Opening file for writing [C:\Log.txt] append [True]
log4net: Opening file for writing [C:\Log.txt] append [True]

これは、追加していることを意味していると思いますが、奇妙なことに、そうではありません。作業シナリオでは、これらのログは表示されません。どんなヒントでも大歓迎です!! 御時間ありがとうございます

4

1 に答える 1