背景
springboot整合log4j时,希望从application.yml中获取到项目名,在网上搜了一圈发现没有太好的方式,根据经验,这种需求官方肯定考虑到了,于是通过从官网
https://logging.apache.org/log4j/2.x/manual/lookups.html得知可以通过以下方式实现:
问题
坑爹的是官网并没有详细说明这个功能的前置条件,集成到项目后发现没有生效,经查阅得知Spring Boot Lookup需要log4j的版本在2.14.0及以上,原springboot提供的整合包版本过低,不支持此功能,需要将以下依赖注释掉
<!-- <dependency>-->
<!-- <groupId>org.springframework.boot</groupId>-->
<!-- <artifactId>spring-boot-starter-log4j2</artifactId>-->
<!-- </dependency>-->
同时这个依赖下边的jar包,我们可以手动引入,作者引入的是2.15.0
除了升级版本外,还要额外引入提供Spring Boot Lookup功能的jar包
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-spring-boot</artifactId>
<version>2.15.0</version>
</dependency>