<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