logback⽇志对象要素
<logger>节点
分两种
1.是普通⽇志对象
logger分为2种,⼀种是普通⽇志对象,另⼀种是根⽇志对象。对于⼤部分应⽤来说,只设置根⽇志对象即可。
在java⽇志系统中,⽆论是log4j还是logback,他们的⽇志对象体系都是呈现“树”的形式,根⽇志对象为最顶层节点,其余包或者类中的⽇志对象都继承于根⽇志节点;
对于普通⽇志对象来说,我们可以设置某⼀个包或者某⼀个类的⽇志级别,还可以单独设置⽇志的输出⽬的地;
<configuration scan="true" scanPeriod="60" debug="false">
<logger name="java.sql" level="debug" addtivity="true">
<appender-ref ref="CONSOLE" />
</logger>
</configuration>
name:⽤来指定此logger属于哪个包或者哪个类;
level:⽤来指定此logger的⽇志打印级别;
addtivity:是否向上传递⽇志打印信息。之前说了,logger对象呈现⼀个树的结构,根logger是树的顶端,下⾯的⼦logger的addtivity属性如果设置为true则会向上传递打印信息,出现⽇志重复打印的现象;
appender-ref:⽇志输出⽬的地,将此logger所打印的⽇志交给此appender;
值得注意的是,上⾯的例⼦中,如果此logger没有指定appender,⽽且addtivity也设置为true,那么此logger对应的⽇志信息只会打印⼀遍,是由root来完成的;但是如果addtivity设置成false,那么此logger将不会输出任何⽇志信息2.根⽇志对象
<root>也是⽇志对象中的⼀种,但它位于logger体系中的最顶层。当⼀个类中的logger对象进⾏打印请求时,如果配置⽂件中没有为该类单独指定⽇志对象,那么都会交给root根⽇志对象来完成;
<root>节点中只有⼀个level属性,还可以单独指定⽇志输除⽬的地<apender-ref>;
log4j与log4j2
<configuration scan="true" scanPeriod="60" debug="false">
<root level="DEBUG">
<appender-ref ref="CONSOLE" />
</root>
</configuration>
appender:⽇志输出⽬的地
与log4j中的appender⼀样,logback中的<appender>节点也同样负责⽇志输出的⽬的地。
appender中有2个必填属性--name和class。name为<appender>节点的名称,class为<appender>的全限定类名,也就是⽇志输出⽬的地的处理类。此外,我们还可以在<appender>中
单独指定⽇志的格式,设置⽇志过滤器等操作;
<appender name="CONSOLE" class="ch.ConsoleAppender">
<encoder>
<pattern>%-4relative [%thread] %-5level %logger{35} - %msg %n</pattern>
</encoder>
</appender>