【问题标题】:How to set CATALINA_HOME in log4j.xml?如何在 log4j.xml 中设置 CATALINA_HOME?
【发布时间】:2012-06-01 22:28:30
【问题描述】:

我需要这样的东西:

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

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

【问题讨论】:

    标签: java tomcat log4j


    【解决方案1】:

    对于 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
    

    【讨论】:

    • 当我使用 Eclipse 运行我的应用程序时,${catalina.base} 给了我D:\EclipseWorkspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp2。并且还没有生成日志文件。有什么解决办法吗?
    • 太棒了。对我有用
    【解决方案2】:

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

    catalina.home 属性已由 Tomcat 提供。

    Tomcat 5.5 logging page 上找到一个(非常)简短的示例,并在以下 SO 问题中找到更多详细信息:

    Log4j, configuring a Web App to use a relative path

    【讨论】:

      【解决方案3】:

      您可以执行以下操作:

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

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

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

      【讨论】:

      • 没有。我先做了!但我得到了一个例外。我无法从配置文件访问系统环境!
      • 我不知道你为什么要定义另一个,当它已经存在时。见my answer
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-17
      • 2014-06-09
      • 1970-01-01
      • 2011-02-15
      • 1970-01-01
      • 2014-11-08
      相关资源
      最近更新 更多