2008-12-16 20 views
2

我有以下情況: 1. .NET UI端使用日誌記錄應用程序塊寫入平面文件 2.非託管Windows服務使用專用記錄器寫入與1相同的文件。使用日誌記錄應用程序塊寫入單個文件的多個客戶

問題:是否有一種方法可以使FlatFile TraceListener在記錄條目後關閉它的文件句柄,以便Windows服務也可以寫入文件?

謝謝!

更新: 我包含Microsoft.Practices.EnterpriseLibrary.Logging.Logger.Writer.Dispose(); ,並關閉流,所以這會做的伎倆 - 只是好奇,如果有另一種方式來做到這一點。

UPDATE2:最後說明

P & P建議從多個應用程序寫入到一個單一的MSMQ。這樣你就不需要調用Dispose()等等。

回答

0

我認爲你的選擇是照顧它的最好方法 - 只要在完成之後處置作者,應該完成並釋放所有作者仍然擁有的資源。

而且,我很擔心這兩種處理試圖在同一時間寫,使其產生異常,但也許在App塊已經針對內置了一些解決辦法代碼。

2

我不得不使用log4net處理這個問題。我根本無法使用日誌框架的文件日誌支持,並且不得不推出我自己的日誌appender來捕獲共享衝突。此時,您的選擇是緩衝內存中的事件並稍後寫出或阻止,直到可以訪問文件。

0

你從哪裏得到.Dispose from? 我輸入EnterpriseLibrary.Logging.Logger.Writer,但是.Writer沒有方法或屬性,沒有.Dispose。

感謝,

TCW

發現:

導入Microsoft.Practices.EntLib.Common的伎倆。

相關問題