如何在log4j.xml中设置CATALINA_HOME?

时间:2012-05-26 20:51:00

标签: java tomcat log4j

我需要这样的东西:

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

我看到了很多类似的问题,但没有可行的解决方案。

3 个答案:

答案 0 :(得分:12)

对于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 :(得分:10)

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

Tomcat已经提供了catalina.home属性。

Tomcat 5.5 logging page上找到(非常)简短的例子以及以下SO问题中的其他详细信息:

Log4j, configuring a Web App to use a relative path

答案 2 :(得分:4)

您可以执行以下操作:

  1. 使用CATALINA_HOME选项将-D作为环境变量发送。你只需要运行
  2. set JAVA_OPTS=%JAVA_OPTS% -DCATALINA_HOME=%CATALINA_HOME%如果你在窗户或 对于unix,export JAVA_OPTS=${JAVA_OPTS} -DCATALINA_HOME=$CATALINA_HOME

    现在只需在你的log4j配置文件中使用$ {CATALINA_HOME},这应该可行。