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

在项目中遇到Log4j2无法调整Mybatis-Plus日志打印级别的问题,通过官方文档找到解决方案。需要在log4j2.xml中添加特定的Logger配置,分别针对`com.xx.manager`和`com.xx.manager.dao.mapper`设置不同级别,以实现对Mybatis-Plus日志的精确控制,避免debug级别的输出。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目中使用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日志。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值