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

application.yml 中配置

spring:
  profiles:
    active: dev
  application:
    name: demo-application

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

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

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

log4j2-spring-dev.xml 中配置

<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

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐