Logback详解

发布时间 2023-09-14 14:50:31作者: zhangliangddq

1、基础知识 参考链接 https://blog.csdn.net/qq_36850813/article/details/108569093

2、root节点

 <!-- 设置最基础的日志输出级别  默认为DEBUG-->
  <root level="INFO">
    <appender-ref ref="STAND_OUT"/>
    <appender-ref ref="INFO_LOG"/>
    <appender-ref ref="ERROR_LOG"/>
  </root>

  设置后 无特殊指定将只打印info、warn、error的日志

3、LevelFilter详解

案例1:
  <filter class="ch.qos.logback.classic.filter.LevelFilter">
        <!--过滤掉 ERROR 级别的日志  info和warn都打印在这里-->
        <level>ERROR</level>
        <!--用于配置符合过滤条件的操作-->
        <onMatch>DENY</onMatch>
        <!--用于配置符合过滤条件的操作-->
        <onMismatch>ACCEPT</onMismatch>
  </filter>

关键字描述:
    onMatch、onMismatch: 用于配置符合过滤条件的操作
    DENY:拒绝   ACCEPT:通过

针对于案例1:
  <filter class="ch.qos.logback.classic.filter.LevelFilter">
        <!--匹配 ERROR 级别的日志-->
        <level>ERROR</level>
        <!--匹配到就拒绝-->
        <onMatch>DENY</onMatch>
        <!--匹配不到就通过-->
        <onMismatch>ACCEPT</onMismatch>
  </filter>
结果:打印 debug、info、warn的日志 当然还的看root节点的配置
案例2:
  <filter class="ch.qos.logback.classic.filter.LevelFilter">
        <!--只记录info级别的-->
        <level>INFO</level>
        <!--用于配置符合过滤条件的操作-->
        <onMatch>ACCEPT</onMatch>
        <!--用于配置符合过滤条件的操作-->
        <onMismatch>DENY</onMismatch>
  </filter>

针对于案例1:
  <filter class="ch.qos.logback.classic.filter.LevelFilter">
        <!--匹配 INFO级别的日志-->
        <level>INFO</level>
        <!--匹配到就通过-->
        <onMatch>ACCEPT</onMatch>
        <!--匹配不到就拒绝-->
        <onMismatch>DENY</onMismatch>
  </filter>
结果:打印 info的日志 当然还的看root节点的配置

4、MybatisPlus配置日志打印到控制台和日志文件中

4.1 仅仅打印到控制台

mybatis-plus:
  mapper-locations: classpath*:mapper/**/**.xml
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl  

配置:org.apache.ibatis.logging.stdout.StdOutImpl 将会将sql打印到控制台 不会输出到日志文件中

4.2输出到日志文件中

mybatis-plus:
  mapper-locations: classpath*:mapper/**/**.xml
  configuration:
    log-impl: org.apache.ibatis.logging.slf4j.Slf4jImpl #配置将sql打印到日志文件中和控制台 

#日志等级配置
logging:
  config: classpath:logback-spring.xml
  file:
    path: ./logs
    name: ${spring.application.name}
  #配置日志所在mapper的日志等级
  level:
    com.........mapper:  debug   #如果要记录sql则等级为debug    error:不记录