logback的配置文件由根节点configuration和三个子节点(appender, logger, root)组成,下面分别简单介绍。
![](https://img.haomeiwen.com/i6867886/ea18da620f70aa35.png)
configuration
<configuration>节点包含三个可配置的属性
- scan 表示如果配置文件更改,是否自动扫描加载,默认值是true。
- scanPeriod 表示自动扫描加载的时间间隔,默认是60 seconds,时间间隔的单位可以是milliseconds、seconds、minutes 或者 hours,默认是milliseconds。
- debug 是否打印logback自身的日志,默认false。
<configuration scan="true" scanPeriod="60 seconds" debug="false">
<!-- 其他配置省略-->
</configuration>
logger
- <logger>节点包含三个可配置的属性
- name 必选,你必须为每一个logger指定一个名称,通常name是类的全限定名或包名。
- level 可选,表示这个logger的日志级别,如果不指定将继承父级logger的级别,如果父级logger也没指定,则继续向父级继承,直到root节点。例如:<logger name="org.schhx"/>是<logger name="org.schhx.springbootlearn"/>父级
- addtivity 可选,表示是否向父级loger传递打印信息,默认是true。
-
<logger>节点包含零个或多个<appender-ref>,表示logger的信息由绑定的appender打印。logger的信息根据addtivity决定是否向父级传递,直到root,本级以及所有绑定了appender的父级都将打印本级的日志。
-
一般情况下,我们都是对logger只配置name和level,addtivity使用默认值true,不绑定appender,使打印信息传递到root,在root绑定appender,统一在root打印日志。
<logger name="org.schhx.springbootlearn" level="DEBUG"/>
root
我们已经知道root其实就是一个特殊的logger,它是所有logger的祖先,它只有一个可配置的属性,就是level,如果不配置的话,表示所有级别都可以打印,虽然可以不配置,但是建议配置。
同样root可以配置零个或多个appender,建议为root至少配置一个appender。
<root level="info">
<appender-ref ref="console"/>
</root>
appender
appender是具体负责写日志的组件,由logger输出的信息都将由appender处理,然后写到具体的日志里。
appender有两个属性name和class。name是appender的标识,也是<appender-ref ref="appender-name"/>中的引用值;class是使用appender类型的全限定名。常用的appender有ConsoleAppender和RollingFileAppender。
网友评论