前面我给项目做多环境配置和打包 ,但还有一个日志文件路径的问题。
在日志文件 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/