2009-12-10 78 views
7

通常,可以切換日誌級別以獲取不同級別的詳細日誌。通常,最低級別的日誌通常可以幫助您識別代碼的哪個區域可能是錯誤的。爲了進一步調試,通常會增加調試級別以獲取更多信息。但是,這會導致與該問題無關的不必要的大量日誌。在日誌級別上登錄的最佳實踐

問題是:這個問題上的最佳實踐是什麼?定義日誌的另一個維度?按邏輯區域,方法還是其他?

編輯: 這來自一個真正的項目,其中應用程序部署在客戶環境中,當事情出錯時,日誌是他們發送調試的東西,肯定他們會討厭發送大量日誌,或者做分析/解析他們自己:通常他們是非技術客戶。我想這與如何在這種情況下管理日誌記錄效率的問題有關。如果打開另一個線程更合適,請留下評論。謝謝。

回答

2

如果你有大量的日誌,你可以按功能區分開它們,這就是NHibernate使用log4net所做的。例如:

NHiberate(根)
NHibernate.Loader
NHibernate.Cache
NHiberante.SQL
...

與像 log4j/net一個好的圖書館,你可以使用滾動日誌文件Appender的

而且您可以輕鬆配置它來不填滿硬盤。例如,您可以配置它以生成一個10MB的日誌文件,然後滾動到另一個文件10次,然後返回到第一個文件並覆蓋它。

3

您可以針對應用程序的不同部分使用不同的偵聽器。但可能您最好使用的是Microsoft Log Parser,它可以讓您在日誌文件上運行查詢,例如您可以對文本日誌文件中的數據執行SELECT操作。檢查一下,它確實是一個非常強大的工具。

+0

這是一個很酷的工具,感謝提示slu!! –

1

你已經提到了按等級記錄。以下是由java.util.logging包提供的logging levels,它根據需要非常有效地控制日誌消息的數量(趨勢與調試)。

記錄的另一個方面是記錄事件並將這些事件分類到某種相當淺的層次結構中。看看這篇關於logging for the purposes of analysis的文章,瞭解更多信息,例如使用Scribe和Hadoop。