如何在log4j.xml中设置CATALINA_HOME?

tri*_*rra 10 java tomcat log4j

我需要这样的东西:

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

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

Mar*_*idt 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 
Run Code Online (Sandbox Code Playgroud)

catalina.home那里是bin文件夹.

catalina.baseconf,logs,webapps和其他文件夹/链接.

Tomcat使用catalina.base自己来配置日志记录目录 - 请参阅conf/logging.properties它所在的位置:

1catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
Run Code Online (Sandbox Code Playgroud)


Rya*_*art 10

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

catalina.home物业已由Tomcat提供.

Tomcat 5.5日志页面上找到一个(非常)简短的示例,并在以下SO问题中找到其他详细信息:

Log4j,配置Web App以使用相对路径


Ale*_*exR 4

您可以执行以下操作:

  1. 使用选项将其CATALINA_HOME作为环境变量发送-D。你只需要跑

set JAVA_OPTS=%JAVA_OPTS% -DCATALINA_HOME=%CATALINA_HOME%如果您使用的是 Windows 或 export JAVA_OPTS=${JAVA_OPTS} -DCATALINA_HOME=$CATALINA_HOMEUNIX。

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