我正在为TomCat 7.0服务器开发一个java web-app(v3.0),我在加载log4j2.xm
l文件时遇到了麻烦。
我在项目之外定义了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:抱歉我的英文。答案 0 :(得分:2)
Log4j在web.xml中插入为log4jConfiguration找到的值。但是,您必须使用标准的Log4j Lookup语法。要获取环境变量,您需要指定:
<context-param>
<param-name>log4jConfiguration</param-name>
<param-value>file:///${env:ENVIROMENT_VARIABLE}/log4j2.xml</param-value>
</context-param>