将log4j.appender.A2.file=${webapp.root}/WEB-INF/logs/AMSLog.log
改成
log4j.appender.A2.file=E://Software//Tomcat 5.5//webapps//AMSWebService//WEB-INF//logs//AMSLog.log

解决方案 »

  1.   

    log4j.appender.A2.file=E://Software//Tomcat 5.5//webapps//AMSWebService//WEB-INF//logs//AMSLog.log
    ---------------------------------------------------------------------------------
    晕~~  这个当然可以  但是如果换一台机器呢,tomcat的路径变了呢?
      

  2.   

    对阿 我的log4j配置文件中没有任何绝对路径,我只想在相对路径中生成日志。可能我的表述不够明确:“我的本意是在 程序工作目录下的 WEB-INF\logs\AMSLog.log 中记录日志。”
      

  3.   

    tomcat?${catalina.home}/webapps/AMSWebService/WEB-INF/logs/AMSLog.log
      

  4.   

    那你就改成这样就行了
    log4j.appender.logfile.File=..\\webapps\\AMSWebService\\WEB-INF\\logs\\AMSLog.log
      

  5.   

    shine333(enihs) 的方法正确。继续咨询:
    ${webapp.root}=.   这个路径指的是那里?在贪心一些,如果不是tomcat,当然不能用${catalina.home}/.....,又没有一劳永逸的方法,比如我脱离测试环境下的tomcat,移至生产环境的websphere(or others) 也不用修改配置文件呢??谢谢
      

  6.   

    〉比如我脱离测试环境下的tomcat,移至生产环境的websphere(or others) 也不用修改配置文件呢可以的,不过不改log4j配置,就要改websphere/weblogic的启动配置。上面${catalina.home}之所以可以,你可以看看tomcat\bin\catalina.bat(startup,shutdown都是调用这个)里面有-Dcatalina.home="%CATALINA_HOME%"所以你可以自己设定一个参数-Dmylog.home="D:/abc/log"到对应的服务器java启动的vm参数中