配置log4j的相对路径,一种方式是可以使用服务器环境变量
log4j的配置文件支持服务器的vm的环境变量,格式类似${catalina.home}
log4j.appender.R.File=${catalina.home}/logs/logs_tomcat.log 
其中的${catalina.home}并非windows系统的环境变量,这个环境变量就不需要在Windows系统的环境变量中设置。之所以这样,可以看看tomcat\bin\catalina.bat(startup,shutdown都是调用这个)里面自带有-Dcatalina.home="%CATALINA_HOME%" 。继承这个思想,所以也可以自己设定一个参数-Dmylog.home="D:/abc/log"到对应的服务器java启动的vm参数中我不明白:到底是要加个系统变量名为catalina.home,还是怎么改?望好心人指点指点!谢谢

解决方案 »

  1.   

    catalina.home
    是tomcat安装后的路径
      

  2.   

    直接这样配:
    ./logs/logs_tomcat.log
    就可以了,日志会打在你项目的logs文件夹下
      

  3.   

    ${catalina.home} 應該是有個 properties 配置文件,在里面定義的路徑,你可以找一下,%CATALINA_HOME%這個是widnows 一種格式,你看到的也是在批處理文件中的。
    先找一找是不是有一個properties配置文件~~~
      

  4.   

    感谢各位的回复!我想问一下这个是配在哪的?是log4j.properties吗?
      

  5.   

    是说项目中有个properties配置文件里配置了catalina.home的值是吗?可我并没有找到!
      

  6.   

    是说catalina.home不需要在项目中配置具体的值,可以直接在log4j.properties中写:
    log4j.appender.fg.File=${catalina.home}/logs/catalina_fg.log吗?
    我试过报错了,说:没有找到catalina.home的路径!我是想问关于${catalina.home}的值,是tomcat的配置文件中已经写明了${catalina.home}是tomcat的安装路径,直接可以拿这个变量来用!还是我要用时,在自己的项目中要明确配置${catalina.home}这个变量指向tomcat的安装路径?不知道有没有表述清楚!真晕!
      

  7.   

    在tomcat的范围内可以直接使用,包括你的工程里面也可以使用这个路径
      

  8.   

    你可以在web.xml里面设置,然后在log4j里面引用里面的路径,在web.xml里面设置的路径就是项目的根路径