0
点赞
收藏
分享

微信扫一扫

mybatis-plus配置log4j2进行日志输出

程序员知识圈 2022-04-21 阅读 62
java后端

项目中使用log4j2进行日志输出,但是发现控制不了mybatis-plus的日志打印级别。如下:

<root level="INFO">
    <appender-ref ref="Console"/>
    <appender-ref ref="RollingFileInfo"/>
    <appender-ref ref="RollingFileWarn"/>
    <appender-ref ref="RollingFileError"/>
    <appender-ref ref="RollingFileDebug"/>
</root>
<Logger name="com.xx.manager" level="debug" />

我明明配置的级别是info,但是依然会打印出下面的日志,仿佛org.apache.ibatis的日志不受root控制一样

如果你也遇到了这个问题,

直接去mybatis-plus的官网找解决方案,其中有一条常见问题,写到启动mybatis本身的log日志,点开后如下

启动 mybatis 本身的 log 日志

# 方式一
mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl 
    
# 方式二 application.yml 中增加配置,指定 mapper 文件所在的包
logging:
  level:
    com.baomidou.example.mapper: debug

方式一打印出的日志格式是ibatis自带的控制台输出,跳过。采用方式二, 注意那行注释,指定mapper文件所在的包,mapper文件就是接口文件所在的包,我的项目里是 com.xx.manager.dao.mapper,因为我们用log4j2.xml来控制日志打印的,所以在log4j2.xml多加上一行

<Logger name="com.xx.manager" level="debug" />
<Logger name="com.xx.manager.dao.mapper" level="info" /> #这行才是控制mybatis-plus日志打印级别的,而不是root或者org.apache.ibatis

这样mybatis-plus就不会打印debug的日志了。回到我上面那个问题,也就能说的通了,<Logger name="com.xx.manager" level="debug" />这样配置不仅控制着项目的日志级别为debug同时控制着mybatis-plus的日志级别,所以会打印出org.apache.ibatis的debug日志。

举报

相关推荐

0 条评论