假设我有log4j2-spring.xml文件,其中包含appender的所有配置。 有一种方法可以从application.properties文件中注入xml值吗?
我的spring-log4j2.xml看起来像这样:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
<Appenders>
<Syslog name="ElkLogs" host="${logstash.host}" port="5002" protocol="UDP">
</Syslogs>
<Async name="AsyncElkLogs">
<AppenderRef ref="ElkLogs"
</Async>
</Appenders>
<Loggers>
<Root>
<AppenderRef ref="AsyncElkLogs"/>
</Root>
</Loggers>
</Configuration>
我的application-dev.properties文件:
logstash.host=elk-dev-1
我的application-prod.properties文件:
logstash.host=elk-prod-1
答案 0 :(得分:1)
使用下面的代码
class="org.springframework.beans.factory.config.PropertiesFactoryBean">
<property name="locations">
<list>
<value>file:/relase/location1env/env1.properties</value>
<value>file:/relase/location2env/env2.properties</value>
</list>
答案 1 :(得分:0)
我找到了解决问题的另一个解决方案,即减少环境之间的耦合。
我创建了两个配置文件,每个配置文件对应一个名称为spring-log4j2-dev.xml
和spring-log4j2-prod.xml
并将我的application.properties
文件编辑为:
<强> application-dev.properties 强>:
logging.config=classpath:spring-log4j2-dev.xml
<强> application.properties 强>:
logging.config=classpath:spring-log4j2-prod.xml