是否可以從5個不同進程寫入同一個日誌文件?Log4Net從多個進程寫入文件
我正在使用Log4Net進行日誌記錄,但似乎只有一個進程正在寫入文件,當我關閉此進程時,第二個進程正在寫入。
我想大家一起寫。
如何?
是否可以從5個不同進程寫入同一個日誌文件?Log4Net從多個進程寫入文件
我正在使用Log4Net進行日誌記錄,但似乎只有一個進程正在寫入文件,當我關閉此進程時,第二個進程正在寫入。
我想大家一起寫。
如何?
如果你想要寫從多個進程的單個文件中添加MinimalLock
作爲LockinModel
您<appender>
節點:
<appender .... >
......
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
......
</appender>
當心這會對性能產生一定的影響。
雖然@ Erwin的建議在大多數情況下都適用,但您應該重新考慮更好的架構是否有助於提高性能。
例如,Microsoft IIS服務器有許多工作進程正在運行,每個工作進程都通過命名管道向IIS服務進程發送日誌條目。並且只有IIS服務進程纔有權寫入日誌文件。通過這種方式,工作進程不需要鎖定日誌文件,服務進程可以緩存條目並批量寫入。
這是很容易遵循IIS的方法,並取得良好的表現。沒有文件鎖。
(更新:現在可以使用LogMaster4Net,它實現了基於UDP的這種架構。)