2010-01-04 107 views
4

在我們的企業中,我們有許多應用程序將活動記錄到文本文件以進行診斷。一般來說,如果某件事失敗或中斷,會發送一封電子郵件通知來通知我們的問題團隊此外,我們還有一個監控應用程序,當應用程序的閒置時間超過預期時間時,會通過電子郵件通知我們的團隊。我們面臨的問題是日誌已經轉化爲噪音,這意味着他們無法提供關於失敗和成功的快速信息。我目前正在探索針對我們企業中應用程序的通用體系結構的解決方案,這引起了我的問題:「嘈雜」日誌記錄問題

什麼是一些常見的方法,技術甚至可能提供簡潔的日誌信息的框架可見和可讀?

回答

5

Log4j和其他日誌框架提供日誌級別,在那裏你與每個日誌語句中指定優先級的概念。然後在運行時設置日誌文件本身的級別 - 只有具有該優先級或更高優先級的日誌語句才能通過。因此,例如,您可以將生產系統設置爲只記錄WARN或ERROR級別的消息,而您的開發環境可以設置爲在DEBUG或更高級別上記錄任何內容。

這是一個不錯的解決方案,因爲它不需要對代碼進行任何更改(如爲每個新版本添加/刪除日誌語句),並且可以在需要執行某些操作時輕鬆進行重新配置(臨時)具體問題。

如果您的系統正在使用的.NET架構,有log4j的叫log4net的的端口,你可以使用(雖然很明顯,替換現有的系統需要更改代碼)。然而,這個問題涉及到一般的設計原則,而不是關於如何處理現有的代碼庫,所以我認爲這個答案就足夠了。

編輯:由於您有使用全新框架的豪華感,this page有一個備選列表,儘管由於我自己在Java應用程序中的使用,我偏向log4j。

+0

是的,這絕對是一個代碼更改。我即將編寫一項新服務,並希望它能成爲我希望團隊今後實施的新日誌記錄方法的「良好」演示。 – Achilles 2010-01-04 16:01:10

0

小而快速的答案,因爲它似乎是所有內部產品,創建一個數據庫,並在其記錄的一切,使這將查詢該數據庫所以它會給出更多的信息,只是一個電子郵件軟件。

1

我電子書籍log4net。你可能需要在它周圍建立自己的warpper(更加瘋狂地使用)。

0

如果您想關聯多個日誌,Splunk絕對值得一看。

爲了使您的應用程序日誌數據更方便和易於理解,看看Gibraltar

直布羅陀包括功能強大的日誌分析工具,可以幫助你看到的模式在成千上萬的日誌。雖然它包含自己的日誌記錄API,但它也可以與常用日誌記錄框架(例如log4net,NLog,ObjectGuy的DotNetLog以及.NET System.Diagnostics名稱空間中的Trace/Console類)一起使用。