2012-10-06 22 views
10

5つの異なるプロセスから同じログファイルに書き込むことはできますか?多くのプロセスからのLog4Net書き込みファイル

私はロギングにLog4Netを使用していますが、このプロセスをシャットダウンすると2つのプロセスが書き込みを行っているだけです。

私はすべて一緒に書きたいと思います。

どのようにですか?

答えて

15

あなたが複数のプロセスから単一のファイルに書き込みたい場合は、あなたの<appender>ノードへLockinModelとしてMinimalLockを追加します。

<appender .... > 
    ...... 
    <lockingModel type="log4net.Appender.FileAppender+MinimalLock" /> 
    ...... 
</appender> 

が、これはパフォーマンスに影響する場合があり注意してください。

5

ほとんどの場合、@ Erwinのアドバイスが機能しますが、より良いアーキテクチャがパフォーマンスを向上させることができるかどうか再考する必要があります。

たとえば、Microsoft IISサーバーには、名前付きパイプ経由でIISサービスプロセスにログエントリを送信する多数のワーカープロセスが実行されています。 IISサービスプロセスだけがログファイルに書き込む権限を持ちます。このようにして、ワーカープロセスはログファイルをロックする必要はなく、サービスプロセスはエントリをキャッシュしてバッチで書き込むことができます。

IISのアプローチに従い、優れたパフォーマンスを達成するのは非常に簡単です。ファイルロックなし。

(更新済み:LogMaster4Netを使用できます。これは、UDPに基づいたアーキテクチャを実装しています)

関連する問題