项目中使用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: info
方式一打印出的日志格式是ibatis自带的控制台输出,跳过。方式二, 注意那行注释,指定mapper文件所在的包,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日志。