2008-10-02 87 views
5

對log4j或類似庫中的日誌類別使用什麼約定? 通常您會將類名稱看作類別,但您是否使用過其他系統?日誌記錄約定

日誌級別怎麼樣?你使用什麼水平,在哪種情況下?

更新:正如你們中的一些人所回答的那樣,沒有「正確的」答案。我只是在尋找人們使用不同的約定作爲可能的靈感來源。

回答

1

我有3個級別:錯誤,警告和詳細日誌,告訴程序在一次做什麼。

我使用類+函數作爲上下文。

0

多年來,我們對此有廣泛的爭論,我們都同意的唯一的事情就是沒有完美的答案!

我們已經決定使用頂級類別名稱來區分大類:例如, '操作'涉及用戶可能關心的任何事情,'內部'涉及只有開發人員纔會關心的事情,'審計'用於跟蹤有趣的事件。

除此之外,我們嘗試限制類別的數量,因爲我們發現沒有人在更詳細的級別打開/關閉它們。因此,我們嘗試將它們歸入功能區,而不是類名,例如。查詢,更新等。

0

日誌取決於您的要求。如果你正在創建一個只記錄是否有任何問題(例如日誌記錄異常)的日誌,那麼你可能只需要Class和Function名稱。

但是,如果您有創建和審計各種排序的功能需求,那麼日誌記錄必須採用完全不同的詳細程度。

0

我們有類+方法的調試日誌。

我們也有特定的日誌用於某些操作,例如,在套接字上收到的連接。這些就是我所說的「事實日誌」或「審計跟蹤日誌」,他們記錄了一種類型的事物。當然,最近我只是將它們粘貼到數據庫中,因爲您所捕獲的事實可能比一串文本複雜得多,它們可能包含特定時間的狀態。也就是說,您爲您需要的每項審計推出自己的審計跟蹤記錄機制。

調試時,我們將設置包/班,我們正在調試調試在log4j的,而離開rootlogger的錯誤,我們將有一個調試日誌文件對於其希望從其他領域留下了所有的gumpf記錄應用程序。

但是,這些事情並沒有真正的「正確方法」。機制的組合看起來不錯,但它取決於你想要記錄的內容。

1

我同意Vaibhav's answer:你必須知道你爲什麼要登錄。

  • 調試內部技術調試信息,log4j的或任何其他庫是好的(只要它們的使用不人爲增加的功能cyclomatic complexity
  • 爲橫向準時記錄(在整個代碼)一些Aspect-Oriented approach更適合
  • 監測,您輸入的信息記錄的完全是另外一個層次,即KPI,與需要記錄通過出版物總線的信息(如TIBCO例如)以某種數據庫。

所以僅供內部日誌記錄,我們遵循一個相當標準的方法:

  • 嚴重的可能危及程序的任何錯誤
  • 繼該內部發展
  • 罰款某些子
  • 信息步驟詳細信息

粒度(對於傳統的內部日誌記錄)是主要類,負責主要的ste ps的過程。