SpringBoot集成JOOQ加Mybatis-plus使用@Slf4j日志

遇到个问题记录下,就是SpringBoot使用Mybatis和Mybatis-plus时可以正常打印日志,但是JOOQ的操作日志确打印不出来?

下面的解决方法就是将JOOQ的日志单独配置出来,直接给你们配置吧!

在项目的resources目录下创建日志文件logback-spring.xml :

复制代码
<!-- JOOQ日志单独配置 -->
<logger name="org.jooq" level="debug" additivity="true">
    <appender-ref ref="dev-console"/>
    <appender-ref ref="info-file"/>
    <appender-ref ref="error-file"/>
</logger>

<logger name="org.jooq" level="info" additivity="false">
    <appender-ref ref="console"/>
    <appender-ref ref="info-file"/>
    <appender-ref ref="error-file"/>
</logger>
XML 复制代码
<?xml version="1.0" encoding="UTF-8"?>

<!-- 从高到地低 OFF 、 FATAL 、 ERROR 、 WARN 、 INFO 、 DEBUG 、 TRACE 、 ALL -->
<!-- 日志输出规则  根据当前ROOT 级别,日志输出时,级别高于root默认的级别时  会输出 -->
<!-- 以下  每个配置的 filter 是过滤掉输出文件里面,会出现高级别文件,依然出现低级别的日志信息,通过filter 过滤只记录本级别的日志-->


<!-- 属性描述 scan:性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true scanPeriod:设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。
    debug:当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。 -->
<configuration scan="false" scanPeriod="60 seconds" debug="false">
    <!-- 参数 -->
    <property name="log_dir" value="./logs/"/>
    <property name="maxHistory" value="7"/>

    <!-- console -->
    <appender name="dev-console" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger -%msg%n</pattern>
        </encoder>
    </appender>

    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>warn</level>
        </filter>
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger -%msg%n</pattern>
        </encoder>
    </appender>

    <appender name="error-file" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!-- 过滤器,只记录WARN级别的日志 -->
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>ERROR</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
        <!-- 最常用的滚动策略,它根据时间来制定滚动策略.既负责滚动也负责触发滚动 -->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--日志输出位置  可相对、和绝对路径 -->
            <fileNamePattern>${log_dir}/%d{yyyy-MM-dd}-error.log</fileNamePattern>
            <maxHistory>${maxHistory}</maxHistory>
        </rollingPolicy>
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n</pattern>
        </encoder>
    </appender>

    <!-- 只记录info appender -->
    <appender name="info-file" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>INFO</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${log_dir}/%d{yyyy-MM-dd}-info.log</fileNamePattern>
            <maxHistory>${maxHistory}</maxHistory>
        </rollingPolicy>
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n</pattern>
        </encoder>
    </appender>

    <!-- JOOQ日志单独配置 -->
    <logger name="org.jooq" level="debug" additivity="true">
        <appender-ref ref="dev-console"/>
        <appender-ref ref="info-file"/>
        <appender-ref ref="error-file"/>
    </logger>

    <logger name="org.jooq" level="info" additivity="false">
        <appender-ref ref="console"/>
        <appender-ref ref="info-file"/>
        <appender-ref ref="error-file"/>
    </logger>

    <!-- Mybatis、Mybatis-plus、系统日志-->
    <springProfile name="dev">
        <root level="debug">
            <appender-ref ref="dev-console"/>
            <appender-ref ref="info-file"/>
            <appender-ref ref="error-file"/>
        </root>
    </springProfile>

    <springProfile name="test,prod,prod-task,uat">
        <root level="info">
            <appender-ref ref="console"/>
            <appender-ref ref="info-file"/>
            <appender-ref ref="error-file"/>
        </root>
    </springProfile>
</configuration>

配置文件里面加入:

XML 复制代码
mybatis:
  configuration:
  #默认是不允许自动转换驼峰命名,得自己设置为true
  map-underscore-to-camel-case: true
  #扫描所有mybatis的xml文件
  mapper-locations: classpath:mapper/*.xml
mybatis-plus:
  configuration:
    #默认是允许自动转换驼峰命名
    map-underscore-to-camel-case: true
    #开启日志
    log-impl: org.apache.ibatis.logging.slf4j.Slf4jImpl

#下面这段配置最好单独放到 dev/prod或者test文件中单独配置
logging:
  level:
    root: warn
    #这里可以适配Mybatis和Mybatis-plus
    com.app: debug
    #JOOQ日志不兼容,需要重新配置一下
    org.jooq: debug
相关推荐
考虑考虑2 小时前
Jpa使用union all
java·spring boot·后端
用户3721574261352 小时前
Java 实现 Excel 与 TXT 文本高效互转
java
浮游本尊4 小时前
Java学习第22天 - 云原生与容器化
java
渣哥5 小时前
原来 Java 里线程安全集合有这么多种
java
间彧5 小时前
Spring Boot集成Spring Security完整指南
java
间彧6 小时前
Spring Secutiy基本原理及工作流程
java
Java水解7 小时前
JAVA经典面试题附答案(持续更新版)
java·后端·面试
洛小豆9 小时前
在Java中,Integer.parseInt和Integer.valueOf有什么区别
java·后端·面试
前端小张同学9 小时前
服务器上如何搭建jenkins 服务CI/CD😎😎
java·后端
ytadpole9 小时前
Spring Cloud Gateway:一次不规范 URL 引发的路由转发404问题排查
java·后端