2009-08-06 80 views
0

我有幾個.net應用程序(~100),我負責監督。其中一些已經登錄到數據庫,其他人登錄到事件查看器,其他人登錄到平面文件。幾個日誌框架,比如log4net,企業庫以及幾個內部遺留日誌框架,沒有人知道如何正確工作。來自多個應用程序的日誌記錄概述

我的系統主要是web服務和智能客戶。

我需要一種方法來整合所有這些系統和不同記錄器記錄的一些單元,它提供給我發生了什麼事的概述。我偶然發現了看起來很有前景的l4ndash,但是我無法動搖l4ndash是爲了給單個應用程序提供概述。任何人都可以詳細說明嗎?由於我有很多系統,可以使用其他任何東西嗎?

任何幫助。

回答

0

我會建議的第一件事是建立一個集中日誌記錄系統(不管你用什麼工具,或者如果你編寫自定義代碼)。然後用一些集中的東西(最好是可部署的程序集),你可以開始指向你的應用程序。這裏的關鍵是如果你想改變你的記錄器,你只能去一個地方來管理你的所有應用程序。我建議你在所有的應用程序中使用抽象層來構建它,這些應用程序完全脫離接口。然後在應用程序級別使用類似StructureMap的東西,這樣如果需要的話,可以根據每個應用程序交換進出的東西。我還會在記錄器級別使用類似StructureMap的東西,以便您可以在該級別進行全局交換。

對於我建議使用ELMAH作爲一般記錄任何Web風格的應用程序。我也總是有log4net監控事物。

+0

你能澄清一下嗎?你是說我應該讓所有的應用程序使用相同的日誌框架,如log4net?當你說我應該創建一個集中的日誌系統時,我想知道是否有一些標準的解決方案,我可以使用它開箱即用。 – Fadeproof 2009-08-06 15:02:03

+0

您可以使用Microsoft的企業應用程序塊...雖然我經常發現它們有點臃腫。通過數據庫創建一箇中央存儲庫,或者最好是MSMQ。然後清理隊列並按照您認爲合適的方式處理記錄的消息。但是,是的,所有應用程序都可以使用的集中式日誌記錄封裝是最好的。如果不是這樣,那麼通過不同的框架可以通知日誌消息的中央報告隊列將成爲下一個最好的事情。 – 2009-08-06 18:44:32