Java 如何从log4j.xml的.properties文件中获取动态值
我正在使用log4j.xml文件。我有两个环境,即live和test。测试和实时的log4j中唯一的区别是级别(INFO-live、DEBUG-test)。因此,我保留了env的公共log4j.xml,并将级别设置为value=${loglevel}。我已经定义了单独的live-log4j.properties,其中包含Java 如何从log4j.xml的.properties文件中获取动态值,java,xml,spring,logging,log4j,Java,Xml,Spring,Logging,Log4j,我正在使用log4j.xml文件。我有两个环境,即live和test。测试和实时的log4j中唯一的区别是级别(INFO-live、DEBUG-test)。因此,我保留了env的公共log4j.xml,并将级别设置为value=${loglevel}。我已经定义了单独的live-log4j.properties,其中包含loglevel=INFO。同样,对于测试也是如此。我的想法是,如果我为live构建jar,那么应该从live-log4j.properties文件中选择日志级别。如果用于测试构
loglevel=INFO
。同样,对于测试也是如此。我的想法是,如果我为live构建jar,那么应该从live-log4j.properties文件中选择日志级别。如果用于测试构建,则来自test-log4j.properties
我的问题是,我做的对吗?log4j.xml会从相应的*.properties文件中选取值吗
我使用的是spring框架。我已经提到了很多东西,但没有什么与此相关。
我已经在spring.xml中添加了这些属性文件(不确定它是否有效)
我没有客户端连接来测试此应用程序
我的log4j版本:log4j 1.x以下是一篇文章,解释如何: 你可以简化它 ApplicationContext.xml:
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>test-log4j.properties</value>
<value>live-log4j.properties</value>
</list>
</property>
</bean>
<bean id="log4jDirectConfigurer" class="my.commons.logging.Log4jDirectConfigurer">
<property name="location" value="classpath:log4j.xml"/>
<property name="loglevelValue" value="${logging.level}"/>
</bean>
log4j.xml:
<root>
<level value="${webapp.logLevel}" />
</root>
test-log4j.属性:
logging.level=DEBUG
是否可以不创建Log4jDirectConfigurer.java?您可以从操作系统创建系统变量<代码>导出webapp.logLevel=INFOLog4j中的占位符尝试访问系统属性。
logging.level=INFO
logging.level=DEBUG