使用log4j2日志框架的时候,由于log4j2.xml不属于spring管理,所以在log4j2.xml就无法读取到application.yml中配置的属性值。
这时候可以根据spring的监听器功能,将application.yml中的属性值读取到系统配置中,然后log4j2.xml直接使用系统属性就行了,在log4j2.xml中是可以读取到系统属性值的。
参考文章:log4j2.xml 使用 application.yml 配置的属性
LoggingListener
通过 spring 的监听器(Listener)功能,将我们读取到的 application.yml 的日志路径设置到系统属性
,或者使用MDC
1 | /** |
application.yml
1 | spring: |
log4j2.xml
1 | <Property name="log-path">${sys:log.path}</Property> |
Application.java
这里没有贴出注解,关键于.addListeners(new LoggingListener())
内置Tomcat
1 | public class Application { |
外置Tomcat
1 | public class TomcatApplication extends SpringBootServletInitializer { |