logback
logback 与 log4f出自同一作者。logback是作者对log4j的升级。它实现了slf4j。
slf4j是 simple log face for java 的缩写。
我们要入门logback 搞懂几个核心类就可了
logback要做的事情是什么?
它搞定输出那些,输出到哪里,怎么输出 这个三个问题。
Logger
它负责写日志,他有自己的level。这个我们都知道,ERROR,WARN,INFO,DEBUG,TRACE
它们的级别逐级下降。低等级level的logger 调用高等级的日志方法能生效。
且Logger之间有继承关系,若自己没有申明级别,就继承父亲的。级别关系通过名称a.b.c的结构体现。且有且只有一个root 的logger
这解决了输出那些日志。
Appender
这个类就负责输出到哪里,可以是文件,控制台,socket,数据库等。
一个logger可以配置多个Apppender
Layout
这个类就负责怎么输出的问题,即日志文本的格式。一个Appender一个Layout
分别指定Logger
通过上面的学习 我们已经知道了大致的知识,但是我们还想要对不同的情形做不同的日志策略,那么我们就可以配置多个Logger。那么我们通常会在要写日志的地方 直接用Lomback的@Slf4j来搞定这个事,那么这个时候会用到那个Logger呢。默认情况下,当然是用的root。但是如果我们配置一个
<logger name="com.zl.iot.controller" level="${logging.level}" additivity="true">
<appender-ref ref="SCHEDULERTASKLOCK-APPENDER" />
<appender-ref ref="ERROR-APPENDER" />
</logger>
这样我们整个controller包下的日志,都会使用我们ref的两个策略输出日志了。
当然 你还可以命名一个以类全限定名的Logger。然后在该类上写上@Slf4j就会以它的策略输出日志。