如何在log4j.xml中设置CATALINA_HOME?

11
我需要类似这样的东西:

"param name="File" value="${CATALINA_HOME}/logs/log4j.log"

我看到了很多类似的问题,但是没有有效的解决方案。
3个回答

15

对于Tomcat 6.0或更新版本,请使用catalina.base(而不是catalina.home):

param name="File" value="${catalina.base}/logs/log4j.log"

根据主机系统,两者可能不同,例如:

catalina.home: /usr/share/tomcat7
catalina.base: /var/lib/tomcat7 

catalina.home 下有一个 bin 文件夹。

catalina.base 下有 conflogswebapps 和其他文件夹/链接。

Tomcat 使用 catalina.base 来配置日志目录 - 参见 conf/logging.properties 中的内容:

1catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs

1
当我使用Eclipse运行我的应用程序时,${catalina.base}会给我D:\EclipseWorkspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp2,而且日志文件也没有生成。有什么解决方法吗? - Abhishek Nayak
很好,适合我。 - Paulo Weverton

10

4
你可以执行以下步骤:
  1. 使用-D选项将CATALINA_HOME作为环境变量发送。如果你在Windows上,只需运行

set JAVA_OPTS=%JAVA_OPTS% -DCATALINA_HOME=%CATALINA_HOME% 如果你在Unix上,运行 export JAVA_OPTS=${JAVA_OPTS} -DCATALINA_HOME=$CATALINA_HOME

现在,只需在log4j配置文件中使用${CATALINA_HOME},这应该就可以了。


不行,我先做了!但是我遇到了一个异常。我无法从配置文件中访问系统环境! - trierra
我不确定为什么您要定义另一个,因为它已经存在。请参见我的答案 - Ryan Stewart

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接