RollingFileAppender はそのシナリオ用に設計されていないため、異なるプロセスから複数のRollingFileAppender インスタンスを使用して同じファイルに書き込むことはお勧めできません。
ここにはいくつかの選択肢があります。
最小限のロックで複数の FileAppender
同じファイルを指し、最小限のロックで構成された複数のFileAppenderインスタンスを使用します。これにより、複数のプロセスからの同時書き込み操作が可能になります。
<appender name="FileAppender" type="log4net.Appender.FileAppender">
<file value="Log.txt" />
<appendToFile value="true" />
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern
value="%date [%thread] %-5level %logger - %message%newline" />
</layout>
</appender>
複数の EventLogAppender
共有 Windows イベント ソースに書き込む複数のEventLogAppenderインスタンスを使用します。
<appender name="EventLogAppender" type="log4net.Appender.EventLogAppender" >
<applicationName value="MyApp" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern
value="%date [%thread] %-5level %logger - %message%newline" />
</layout>
</appender>
もちろん、ログをデータベース、または別のプロセスで実行されているリモート コンポーネント、さらには別のマシンに送信することもできますが、これらの選択にはより多くのインフラストラクチャをセットアップする必要があるため、シナリオではやり過ぎになる可能性があります。
関連リソース: