logback

 

logback介绍

Logback继承自log4j。Logback的架构非常的通用,适用于不同的使用场景。

logback和Log4j都是slf4j规范的具体实现,我们在程序中直接调用的API其实都是slf4j的api,底层则是真正的日志实现组件---logback或者log4j。

Logback 构建在三个主要的类上:Logger,Appender 和 Layout。这三个不同类型的组件一起作用能够让开发者根据消息的类型以及日志的级别来打印日志。

Logger作为日志的记录器,把它关联到应用的对应的context后,主要用于存放日志对象,也可以定义日志类型、级别。各个logger 都被关联到一个 LoggerContext,LoggerContext负责制造logger,也负责以树结构排列各 logger。

Appender主要用于指定日志输出的目的地,目的地可以是控制台、文件、 数据库等。

Layout 负责把事件转换成字符串,输出格式化的日志信息。

logback的maven坐标:

<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-classic</artifactId>
    <version>1.2.3</version>
</dependency>
<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-core</artifactId>
    <version>1.2.3</version>
</dependency>

logback层级

在 logback中每一个 logger 都依附在 LoggerContext 上,它负责产生 logger,并且通过一个树状的层级结构来进行管理。

一个 Logger 被当作为一个实体,它们的命名是大小写敏感的,并且遵循以下规则:

如果一个logger的名字加上一个.作为另一个logger名字的前缀,那么该logger就是另一个logger的祖先。如果一个logger与另一个logger之间没有其它的logger,则该logger就是另一个logger的父级。
​
举例:
名为cn.itcast的logger是名为cn.itcast.service的logger的父级
名为cn的logger是名为cn.itcast的logger的父级,是名为cn.itcast.service的logger的祖先

在logback中有一个root logger,它是logger层次结构的最高层,它是一个特殊的logger,因为它是每一个层次结构的一部分。

logback日志输出等级

logback的日志输出等级分为:TRACE, DEBUG, INFO, WARN, ERROR。

如果一个给定的logger没有指定一个日志输出等级,那么它就会继承离它最近的一个祖先的层级。

为了确保所有的logger都有一个日志输出等级,root logger会有一个默认输出等级 --- DEBUG。

logback初始化步骤

  1. logback会在类路径下寻找名为logback-text.xml文件

  2. 如果没有找到, logback会继续寻找名为logback.groovt的文件

  3. 如果没有找到,logback会继续寻找名为logback.xml的文件

  4. 如果没有找到, 将会在类路径下寻找文件META-INFO/service/ch.qos.logback.class.spi.Configurator, 该文件的内容为实现了Configurator接口的实现类的全限定类名

  5. 如果以上都没有成功, logback会通过BasicCOnfigurator为自己进行配置, 并且日志会全部在控制台打印出来

最后一步的目的是为了保证在所有的配置文件都没有被找到的情况下提供一个默认的类, 日志输出在控制台的

posted on 2022-11-25 23:53  老菜农  阅读(57)  评论(0编辑  收藏  举报

导航