多环境配置日志文件路径,logback.xml 中读取 application.yml 属性值

前面我给项目做多环境配置和打包 ,但还有一个日志文件路径的问题。

在日志文件 logback-spring.xml 中需要为日志文件配置路径,将生成的日志保存在服务器哪个目录下。

<fileNamePattern>${FILE_PATH}</fileNamePattern>

但现在考虑到是多环境情况,所以这个路径也需要根据不同环境动态变化。

一般我们会依据 application.yml 中的name属性动态命名,所以,需要在logback-spring.xml文件中获取name属性的值。

但很遗憾,因为它们两者先后加载的原因,在logback-spring.xml中无法读取到application.yml的值。

解决办法如下:

1、在 application-xx.yml中定义一个属性

log-dir: /home/software/web/zhongdianlian/${platform_logo}/logs

其中platform_logo是文件中其它属性的值。

2、在logback-spring.xml中配置如下代码

 <springProperty scope="context" name="logDir" source="log-dir" defaultValue="logs" />

因为我在路径中配置的值是变量

<fileNamePattern>${FILE_PATH}</fileNamePattern>

所以,我还需要定义一个FILE_PATH变量,就在如上代码下方。

 <property name="FILE_PATH" value="${logDir}/k.%d{yyyy-MM-dd}.%i.log" />

ok,这样就完美实现了多环境下日志文件路径的动态配置,在logback.xml中读取到application.yml的值。

 

本文由老郭种树原创,转载请注明:https://guozh.net/read-the-attribute-value-of-application-yml-in-logback-xml/

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注