问题描述
设置log4j2的配置文件,为什么不生效呢?
先上配置
Logger performanceLogger = LoggerFactory.getLogger("PERFORMANCE");
this.performanceLogger.debug("=====PERFORMANCE=====");
<Console name="console" target="SYSTEM_OUT">
<!--控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch)-->
<ThresholdFilter level="trace" onMatch="ACCEPT" onMismatch="DENY"/>
<!--这个都知道是输出日志的格式-->
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss z} %-4r [%t] %-5p %c{-1} - %msg%xEx%n"/>
</Console>
<asyncLogger name="PERFORMANCE" level="debug" additivity="false">
<appender-ref ref="console"/>
</asyncLogger>
配置没毛病为什么不生效呢
打开断点发现这个logger对象竟然是logback的jar包下的配置,经查阅这是由于jar包冲突导致的。
解决方案
查看maven依赖
到项目的根目录,打开命令行窗口,执行:mvn dependency:tree > tree.log(前提安装了maven,如何安装自行百度)。
打开tree.log搜索logback,如图:
pom添加依赖过滤
在spring-boot-starter-data-redis中自动引入了logback的jar包。找到mvn依赖,使用exclusions添加过滤。
clear、重启项目
检验结果
再次打印。发现已经使用log4j2的配置
控制台打印
自此完美解决。