log4net のFAQから:
複数のプロセスを同じファイルに記録するにはどうすればよいですか?
デフォルトでは、FileAppender は、ログを記録している間、ログ ファイルに対して排他的な書き込みロックを保持します。これにより、他のプロセスがファイルに書き込むことができなくなります。FileAppender は、ログが書き込まれている間のみ書き込みロックを取得する別のロック モデル MinimalLock を使用するように構成できます。これにより、パフォーマンスは低下しますが、複数のプロセスが同じファイルへの書き込みをインターリーブできます。MinimalLock 構成の例については、FileAppender 構成例を参照してください。
MinimalLock モデルを使用して 1 つのファイルへの書き込みをインターリーブすることはできますが、特に複数のマシンからログを記録する場合は、最適なソリューションではない可能性があります。あるいは、RemotingAppenders に 1 つ以上のプロセスのログを記録することもできます。RemoteLoggingServerPlugin (または IRemoteLoggingSink) を使用すると、プロセスはすべてのイベントを受信し、それらを 1 つのログ ファイルに記録できます。
追加の構成がなければ、log4net はファイルに排他ロックを設定します。MinimalLock 設定を使用すると、「うまくいけば」共有ログを取得できます。つまり、走行距離は異なる場合があります。
推奨される代替戦略として、Web サービスの内部 API があるため、バックグラウンドで単一のプライベート静的ロガーを実装し、ログにエントリを追加する Web サービス メソッドを検討してください。ロギングを実装する他の Web メソッドからロギング Web メソッドを (パフォーマンスが重要な場合は非同期で) 呼び出すことができます。