這是我使用(但我用log4net的,但我想它的相同)
.trace() - 是用來記錄的東西像函數的入口和出口,和巨大的datadumps
for(a in l) { trace("List contents: "+ a) }
的.debug() - 是考慮分支何時打印的信息完整1(一)行。 您可能在單個函數中有幾條調試語句,但不是1條pr線。 當你閱讀調試語句時,它應該看起來像一個簡潔版本的
函數。
.debug("Checking if current account {} for user {} has more than {} amount", amount);
.debug("Account criteria met for account {} for user {}; making withdrawel of {}", otheramount);
.debug("Account {} debited by {} amount. Transaction key {}");
每條調試行都必須是獨立的,並且包含理解它所需的所有信息。有沒有一條線只讀「檢查帳戶級別」,因爲你的下一個問題將是哪個帳戶?什麼用戶?什麼數量?
.info() - 最多隻有1個或2個pr函數,並且只在高級作用域中。必須完成數據。
.info("Withdrawel procecss complete for account {}, user {}, for amount {}");
.warn() - 非嚴重錯誤,數據完整,所以你可以通過這些來一個郵件記錄器,並在一段時間檢查一次該郵箱。
.error() - 與警告相同,但更重要。用戶被阻止實現他的目標,所以你想更頻繁地查看。
.fatal() - 如果可能的話,應直接轉到sysadm的尋呼機,並提供關於服務器/機器名稱的信息。
除此之外,請確保每個類都具有基於該類的自己的記錄器,因此即使在運行時,您也可以輕鬆地爲代碼的特定區域打開和關閉日誌。
只是爲了清楚起見,您是否對如何查找NLog跟蹤語句的實例感興趣,或尋找一種更好的方法來記錄一般情況? – mfanto