1. 程式人生 > >log4net配置學習 之 日誌等級

log4net配置學習 之 日誌等級

Logger hierarchy(層次級別)

Logger都是已經命名的實體。

Logger的名稱區分大小寫並遵循以下規則:

1、如果A logger的名稱如果是B logger名稱的字首(通過“.”連線),則說A logger是B logger的祖父級。

2、如果A logger的名稱和B logger的名稱之間不存在其他的logger名稱,則A logger是B logger的父級。

        例子:A logger名稱為“Foo.Bar”,B logger名稱為“Foo.Bar.Baz”,A為B的父級。名稱為“System”的logger是名稱為“System.Text.StringBuilder”的祖父級。

Root logger位於logger層次級別中的頂級。

它有例外的三條規則:

1、Root logger總是存在的。

2、Root logger不能通過名稱或取。

3、Root logger 有一個預設的Level 值為 Debug。

Logger 可以通過log4net.LogManager類的靜態方法GetLogger獲取。

Level值:ALL/DEBUG/INFO/WARN/ERROR/FATAL/OFF

Level 繼承規則:如果一個logger沒有定義Level,它的Level值將從它的父級(定義了Level)繼承。

日誌紀錄請求通過呼叫logger例項的輸出方法實現。

這些輸出方法有Debug,Info,Warn,Error和Fatal。

通過定義,輸出方法決定了日誌紀錄請求的Level。

例如,log是一個logger例項,那麼語句log.Info(“..”)的日誌紀錄請求Level為INFO。 如果日誌紀錄請求的Level比logger本身定義(或繼承)的Level高,則請求是可行的,否則不可行。

簡單規則:如果日誌記錄請求的Level為L,logger本身定義(或繼承)Level為K,當L>=K時,日誌紀錄請求是可行的。

Level級別:DEBUG <INFO<WARN<ERROR<FATAL

通過名稱,呼叫log4net.LogManager.GetLogger方法,可以獲取同一個logger的例項引用。

這樣在配置了一個logger後,不用在程式碼中傳遞引用而可以獲取同一個logger的引用了。

與生物上的親子關係(父親總是先於孩子)基本相反,在log4net 裡,logger可以被建立和配置成任何順序。

特別的是,一個父級logger可能比子級logger後例項化,但卻可以在子級中查詢到。