2016-05-12 196 views
1

我正在为TomCat 7.0服务器开发java web-app(v3.0),并且遇到了加载log4j2.xm l文件的麻烦。使用环境变量在项目外加载log4j2.xml文件

我在我的项目外定义了log4j2.xml文件,并在我的web.xml文件中定义了该文件的路径。

如果我硬编码路径我的log4j2.xml文件加载,因为它应该。

<context-param> 
    <param-name>log4jConfiguration</param-name> 
    <param-value>file:///C:/my/path/log4j2.xml</param-value> 
</context-param>  

另一方面,我想使用环境变量来定义路径。

<context-param> 
    <param-name>log4jConfiguration</param-name> 
    <param-value>file:///${ENVIROMENT_VARIABLE}/log4j2.xml</param-value> 
</context-param> 

当我启动Tomcat我有这样的错误:

ERROR SatusLogger Unable to access file:///$%7BENVIROMENT_VARIABLE%7D/log4j2.xml 

它看起来是不是 '翻译' 的变量。

任何帮助将非常愉快。

PD:对不起,我的英语。

回答

2

Log4j在web.xml中内插它为log4jConfiguration找到的值。但是,您必须使用标准的Log4j查找语法。要获得一个环境变量,您可以指定:

<context-param> 
    <param-name>log4jConfiguration</param-name> 
    <param-value>file:///${env:ENVIROMENT_VARIABLE}/log4j2.xml</param-value> 
</context-param> 
+0

谢谢!这工作! – ferpinan