使用maven依赖spring-boot-starter-log4j2一定要在Springboot启动类所在的包。
下图是我的项目结构uap-cc为最顶层父工程,uap-cc-boot和uap-cc-core为子工程,而boot依赖core,core里面要写单元测试用例,不能循环依赖boot,所以单独在test目录下写了一个TestApplication,结果就是单独启动TestApplication或者该包下的Test类,log4j2都不能在控制台正常打印日志,最后排查发现在uap-boot下再加一下spring-boot-starter-log4j2依赖即可,猜测原因是Application启动时去当前包中去找log4j2相关启动类。
附上spring-boot-starter-log4j2依赖
spring-boot-starter-log4j2
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j2</artifactId>
<version>${spring.boot.version}</version>
<scope>test</scope>
</dependency>