log4j2.xml中如何获得spring.application.xml值
时间: 2023-09-23 08:13:25 浏览: 153
log4j2-spring.xml
在log4j2.xml中,可以使用以下方式获取Spring配置文件中的值:
1. 在log4j2.xml中引入Spring配置文件:
```xml
<Configuration status="WARN">
<Properties>
<Property name="log-path">${spring.application.logPath}</Property>
</Properties>
<Appenders>
<RollingFile name="RollingFile" fileName="${log-path}/app.log"
filePattern="${log-path}/app-%d{MM-dd-yyyy}-%i.log.gz">
<PatternLayout>
<Pattern>%d %p %c{1.} [%t] %m%n</Pattern>
</PatternLayout>
<Policies>
<SizeBasedTriggeringPolicy size="10 MB"/>
</Policies>
<DefaultRolloverStrategy max="10"/>
</RollingFile>
</Appenders>
<Loggers>
<Root level="info">
<AppenderRef ref="RollingFile"/>
</Root>
</Loggers>
</Configuration>
```
2. 在Spring配置文件中定义`spring.application.logPath`属性,并将其注入到log4j2.xml中:
```xml
<bean id="logProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
<property name="properties">
<props>
<prop key="spring.application.logPath">/var/log/myapp</prop>
</props>
</property>
</bean>
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="properties" ref="logProperties"/>
</bean>
```
这样,在log4j2.xml中就可以通过`${spring.application.logPath}`来获取`/var/log/myapp`这个值了。
阅读全文