0%

log4j2 配置文件读取 application.yml 的日志路径变量

application.yml 中配置

1
2
3
4
5
6
7
8
9
10
spring:
profiles:
active: dev
application:
name: demo-application

logging:
file:
# 配置日志的路径,包含 spring.application.name
path: /var/log/${spring.application.name}

application-dev.yml 中配置,指定 log4j2 的配置文件

1
2
logging:
config: classpath:log4j2-spring-dev.xml

log4j2-spring-dev.xml 中配置

1
2
3
4
<Properties>
<!-- ${sys:LOG_PATH} 读取的就是 application.yml 中的 logging.file.path 的值 -->
<property name="LOG_PATH" value="${sys:LOG_PATH}"/>
</Properties>

这样操作以后,log4j2-spring.xml 的内容几乎就不用更改了,不同的项目也只需要复制过去就可以了。

附:

在 logback.xml 中,这个值是 ${LOG_PATH} 没有 sys:

参考: org.springframework.boot.logging.log4j2.log4j2-file.xml

觉得有收获就鼓励下作者吧