如何在spring的xmls中定义变量以在log4j.properties中使用
这有点像一个谜题。
我在 WAR 中有一个应用程序。那里有web.xml和应用程序上下文.xml,还有log4j.properties。这场战争在雄猫中运行。
有可能在log4j.properties中使用一些变量,例如log4j.appender.file.File=${catalina.base}/logs/app.log
我想在web.xml或上下文中定义一个变量.xml并在log4j.properties中使用它。例如,以某种方式设置和使用 .它不应该是一个环境变量。version=1.1
log4j.appender.file.File=${catalina.base}/logs/app-${version}.log
我可以在不重新编译应用程序的情况下执行此操作吗?
ADD不应该影响任何东西,但以防万一...
它的网页.xml看起来像这样:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee">
<!-- Spring -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:context.xml</param-value>
</context-param>
<!-- log4j -->
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>classpath:log4j.properties</param-value>
</context-param>
<context-param>
<param-name>log4jRefreshInterval</param-name>
<param-value>10000</param-value>
</context-param>
<context-param>
<param-name>log4jExposeWebAppRoot</param-name>
<param-value>false</param-value>
</context-param>
...
</web-app>