Logback最全详解(看这篇就够了)

Logback最全详解(看这篇就够了)-mikechen

Logback详定义

Logback是一个灵活且高效的Java日志框架,是log4j框架的升级版,同时也是Spring Boot默认使用的日志框架。

 

Logback组件

1. logback-core

logback-core提供了通用的日志功能,如异步日志记录、过滤器、Layouts等等。

它也提供了许多有用的类,如Logger、LoggerContext和StatusManager。

 

2. logback-classic

logback-classic是logback-core的扩展版本,它添加了与SLF4J的兼容性,这使得我们可以像使用SLF4J一样使用logback。

 

3. logback-access

logback-access是一个专用于Web应用程序的组件,它使用了logback-core的功能来记录HTTP请求和响应的信息。

 

Logback配置

Logback的配置元素,如下图所示:

Logback最全详解(看这篇就够了)-mikechen

配置包含如下节点:

  • <configuration>:Logback配置文件的根元素,包含所有的配置信息。
  • <appender>:定义一个Appender,即日志输出的目的地,如控制台或文件。
  • <encoder>:定义日志输出格式,它包含在Appender元素中。
  • <logger>:定义一个Logger,它有一个name属性,表示Logger的名称,也可以使用通配符匹配多个Logger。
  • <root>:定义根Logger,通常用于设置默认的日志级别和输出目的地。
  • <level>:定义日志级别,可以包含在Logger或Appender元素中。
  • <filter>:定义一个过滤器,可以用来过滤日志信息。
  • <rollingPolicy>和<triggeringPolicy>:定义Appender的滚动策略和触发策略。

Logback配置示例如下:

<configuration>

  <!-- 定义输出到控制台的日志格式 -->
  <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
      <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
    </encoder>
  </appender>

  <!-- 定义输出到文件的日志格式和文件滚动策略 -->
  <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>logs/myapp.log</file>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
      <fileNamePattern>logs/myapp-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
      <maxHistory>30</maxHistory>
      <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
        <maxFileSize>10MB</maxFileSize>
      </timeBasedFileNamingAndTriggeringPolicy>
    </rollingPolicy>
    <encoder>
      <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
    </encoder>
  </appender>

  <!-- 定义根Logger -->
  <root level="INFO">
    <appender-ref ref="CONSOLE" />
    <appender-ref ref="FILE" />
  </root>

  <!-- 定义其他Logger,按照包名进行分类 -->
  <logger name="com.example" level="DEBUG">
    <appender-ref ref="FILE" />
  </logger>

  <logger name="com.example.controller" level="INFO">
    <appender-ref ref="FILE" />
  </logger>

  <logger name="com.example.service" level="WARN">

 

Logback日志级别

Logback定义了七个不同的日志级别,从低到高分别为 TRACE、DEBUG、INFO、WARN、ERROR、FATAL、OFF。

  • TRACE:最低级别的日志,通常用于追踪代码执行路径。记录日志的信息最详细,包括进入和退出方法、捕捉到的异常以及其他详细信息。一般情况下,不会在生产环境中使用TRACE级别的日志。
  • DEBUG:调试级别的日志,用于记录调试信息。通常记录程序的流程控制、变量值等等。
  • INFO:普通级别的日志,用于记录应用程序的正常运行状态,例如启动信息、配置信息、业务处理等等。
  • WARN:警告级别的日志,用于记录一些可能的问题,但是不影响应用程序的正常运行。例如文件不存在、资源加载失败等等。
  • ERROR:错误级别的日志,用于记录应用程序的异常或错误,这种错误一般需要开发人员进行处理。
  • FATAL:严重错误级别的日志,通常用于记录致命的错误,可能导致应用程序崩溃或无法继续运行的错误。
  • OFF:最高级别的日志,用于关闭所有日志输出。

以上就是Logback详解,希望对你掌握Logback有所帮助!

作者简介

陈睿|mikechen,10年+大厂架构经验,BAT资深面试官,就职于阿里巴巴、淘宝、百度等一线互联网大厂。

👇阅读更多mikechen架构文章👇

阿里架构 |双11秒杀 |分布式架构 |负载均衡 |单点登录 |微服务 |云原生 |高并发 |架构师

以上

关注作者「mikechen」公众号,获取更多技术干货!

后台回复架构,即可获取《阿里架构师进阶专题全部合集》,后台回复面试即可获取《史上最全阿里Java面试题总结

评论交流
    说说你的看法