2009-12-05 43 views
4

試圖爲分佈式系統找到商業日誌記錄框架。此框架必須允許遠程服務器上的.NET應用程序記錄可以在中央位置收集的消息。如果可能,中央位置應該將消息存儲在SQL Server數據庫中。可靠(耐用)分佈式日誌記錄引擎

要求:

  1. 能夠發起遠程服務器上的郵件的記錄,即使網絡中斷防止消息中央位置的即時調度。
  2. 將消息分派到中央位置應該由運行.NET應用程序以外的進程處理,以防止ASP.NET應用程序或Web服務的性能下降。
  3. 確保最終將消息傳送到中央位置。例如如果遠程服務器在網絡沒有響應的時段結束時重新啓動,則在恢復遠程服務器和正常網絡條件時應仍傳送已記錄的消息。

回答

0

log4net是選擇。它是thread-safe

+1

這是線程安全的,但除非我誤解了,它不提供內置的分佈,記錄的消息的持久處理。 – 2009-12-05 14:56:35

1

可能一個非常簡單的解決方案可能是繼續編寫本地日誌並創建一個單獨的進程以將日誌重新發布到服務器。您可以使用多種選項發佈日誌,包括髮布訂閱消息總線,如MassTransit或msmq。

使用不同的解決方案,如編寫特定的log4net適配器絕對是一種選擇,但它可能會出現耦合/依賴關係問題,因此採用必須考慮實際的部署環境。

1

我認爲您應該可以使用Microsoft Enterprise Library和MSMQ開箱即用。 Entlib日誌記錄應用程序塊具有內置的MSMQ偵聽器。雖然我們在幾個項目上使用了Entlib日誌記錄,但我還沒有親自使用過MSMQ分發服務。

http://msdn.microsoft.com/en-us/library/dd203267.aspx

相關問題