How to set CATALINA_HOME in log4j.xml?

后端 未结 3 1131
梦毁少年i
梦毁少年i 2021-02-14 01:48

I need something like this:

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

I saw a lot of similar questions, but there is no working solutions

相关标签:
3条回答
  • 2021-02-14 02:19

    For Tomcat 6.0 or newer use catalina.base (rather than catalina.home):

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

    Depending on the host system, the two may be different, for example:

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

    Under catalina.home there's the bin folder.

    Under catalina.base there are conf, logs, webapps and other folders/links.

    Tomcat uses catalina.base itself to configure the logging directory - see conf/logging.properties where it says:

    1catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
    
    0 讨论(0)
  • 2021-02-14 02:19

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

    The catalina.home property is already made available by Tomcat.

    Find a (very) brief example on the Tomcat 5.5 logging page and additional detail in the following SO question:

    Log4j, configuring a Web App to use a relative path

    0 讨论(0)
  • 2021-02-14 02:30

    You can do the following:

    1. send the CATALINA_HOME as an environment variable using -D option. You just have to run

    set JAVA_OPTS=%JAVA_OPTS% -DCATALINA_HOME=%CATALINA_HOME% if you are on windows or export JAVA_OPTS=${JAVA_OPTS} -DCATALINA_HOME=$CATALINA_HOME for unix.

    Now just use ${CATALINA_HOME} into your log4j configuration file and this should work.

    0 讨论(0)
提交回复
热议问题