Logger hierarchy(層次級別)ide
Logger都是已經命名的實體。ui
Logger的名稱區分大小寫並遵循如下規則:.net
一、若是A logger的名稱若是是B logger名稱的前綴(經過「.」鏈接),則說A logger是B logger的祖父級。日誌
二、若是A logger的名稱和B logger的名稱之間不存在其餘的logger名稱,則A logger是B logger的父級。blog
例子:A logger名稱爲「Foo.Bar」,B logger名稱爲「Foo.Bar.Baz」,A爲B的父級。名稱爲「System」的logger是名稱爲「System.Text.StringBuilder」的祖父級。繼承
Root logger位於logger層次級別中的頂級。get
它有例外的三條規則: it
一、Root logger老是存在的。class
二、Root logger不能經過名稱或取。配置
三、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後實例化,但卻能夠在子級中查找到。