<loger>
用來設置某一個包或者具體的某一個類的日誌打印級別、以及指定<appender>
。<loger>
僅有一個name
屬性,一個可選的level
和一個可選的addtivity
屬性。java
name
:用來指定受此loger約束的某一個包或者具體的某一個類。level
:用來設置打印級別,大小寫無關:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,還有一個特俗值INHERITED或者同義詞NULL,表明強制執行上級的級別。若是未設置此屬性,那麼當前loger將會繼承上級的級別。addtivity
:是否向上級loger傳遞打印信息。默認是true。
loger
的配置,不指定級別,不指定appender
<logger name="com.dudu.controller" />將控制
controller
包下的全部類的日誌的打印,可是並沒用設置打印級別,因此繼承他的上級的日誌級別「info」
;
沒有設置addtivity
,默認爲true,將此loger
的打印信息向上級傳遞;
沒有設置appender
,此loger
自己不打印任何信息。
<root level="info">
將root
的打印級別設置爲「info」
,指定了名字爲「console」
的appender
。app當執行
com.dudu.controller.LearnController
類的login
方法時,LearnController
在包com.dudu.controller中,因此首先執行<logger name="com.dudu.controller"/>
,將級別爲「info」
及大於「info」
的日誌信息傳遞給root
,自己並不打印;
root
接到下級傳遞的信息,交給已經配置好的名爲「console」的appender
處理,「console」
appender
將信息打印到控制檯;spa打印結果以下:日誌
16:00:17.407 logback [http-nio-8080-exec-8] INFO com.dudu.controller.LearnController - 日誌輸出 info 16:00:17.408 logback [http-nio-8080-exec-8] WARN com.dudu.controller.LearnController - 日誌輸出 warn 16:00:17.408 logback [http-nio-8080-exec-8] ERROR com.dudu.controller.LearnController -
loger
的配置,指定級別,指定appender
<configuration> ... <!--logback.LogbackDemo:類的全路徑 --> <logger name="com.dudu.controller.LearnController" level="WARN" additivity="false"> <appender-ref ref="console"/> </logger> </configuration>
控制com.dudu.controller.LearnController類的日誌打印,打印級別爲「WARN」;
additivity屬性爲false,表示此loger的打印信息再也不向上級傳遞;
指定了名字爲「console」的appender;
這時候執行com.dudu.controller.LearnController類的login方法時,先執行<logger name="com.dudu.controller.LearnController" level="WARN" additivity="false">,將級別爲「WARN」及大於「WARN」的日誌信息交給此loger指定的名爲「console」的appender處理,在控制檯中打出日誌,再也不向上級root傳遞打印信息。code16:00:17.408 logback [http-nio-8080-exec-8] WARN com.dudu.controller.LearnController - 日誌輸出 warn 16:00:17.408 logback [http-nio-8080-exec-8] ERROR com.dudu.controller.LearnController - 日誌輸出 error固然若是你把
additivity="false"
改爲additivity="true"
的話,就會打印兩次,由於打印信息向上級傳遞,logger自己打印一次,root接到後又打印一次。xml注意:繼承
<configuration> ... <logger name="com.example.demo.controller" level="WARN" additivity="false"> <appender-ref ref="consoleLog"/> </logger> <logger name="com.example.demo.controller"/> <logger name="com.example.demo"/> </configuration>範圍有重疊的話,範圍小的,有效。coffeescript