log4j2使用的bug

项目场景:

领导今天给了一个需求,是关于日志的,需要在日志中打印出sql语句


问题描述

我根据网上的教程,案例改了很多版,有xml写法的,有在application.yml改mybatis日志输出设置的,如

log4j2使用的bug_第1张图片


原因分析:

不管改哪里,一直都不见在debug文件中打印,但是经过我不懈的努力,我发现了些许差异,有些sql在debug日志中会打印,但是它不会在控制台打印,而在控制台打印的sql就不会在debug日志中打印。

分析到这我感觉问题的关键找到了,设置的优先级可能有点问题,并且这个项目是通过注入bean的方式进行设置mybatis的配置的

log4j2使用的bug_第2张图片

而我在application.yml配置的明显与这个冲突了,

这里注意:经过测试,两种方法只能达成一种,而且mybatis配置文件:mybatis-config.xml(控制台打印)的配置,会优先于程序配置文件:application.properties的配置(日志文件打印)

所以我一直配置的日志打印不生效的问题找到了


解决方案:

log4j2使用的bug_第3张图片

将上图里的设置改成下图

log4j2使用的bug_第4张图片

这样就会将sql输出到日志文件中了

但是这样的话控制台无法输出了,选择使用吧

你可能感兴趣的:(白驹过隙,log4j,logback,mybatis,java)