<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender name="CONSOLE"class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern"
value="%p - %C{1}.%M(%L) | %m%n"/>
</layout>
</appender>
<appender name="apcmsSysLogFile"class="org.apache.log4j.DailyRollingFileAppender">
<param name="File"value="${catalina.home}/logs/apcms/apcms_sys.log"/>
<param name="DatePattern"value="'_'yyyyMMdd'.log'"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern"
value="%d{yyyyMMdd HH:mm:ss} %p - %C{1}.%M(%L) | %m%n"/>
</layout>
</appender>
<appender name="apcmsDataSyncLogFile"class="org.apache.log4j.DailyRollingFileAppender">
<param name="File"value="${catalina.home}/logs/apcms/apcms_dataSync.log"/>
<param name="DatePattern"value="'_'yyyyMMdd'.log'"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern"
value="%d{yyyyMMdd HH:mm:ss} %p - %C{1}.%M(%L) | %m%n"/>
</layout>
</appender>
<appender name="FILE"class="org.apache.log4j.DailyRollingFileAppender">
<param name="File"value="${catalina.home}/logs/apcms/SystemAll.log"/>
<param name="DatePattern"value="'_'yyyy-MM-dd'.log'"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern"
value="[%d{yyyyMMdd HH:mm:ss SSS} %-5p] [%t] %c{3} - %m%n"/>
</layout>
</appender>
<logger name="org.apache">
<level value="WARN"/>
</logger>
<logger name="org.directwebremoting">
<level value="WARN"/>
</logger>
<logger name="org.springframework">
<level value="WARN"/>
</logger>
<logger name="org.codehaus.xfire">
<level value="WARN"/>
</logger>
</log4j>
${catalina.home}在系统环境配置了CATALINA_HOME环境变量
方法一、 解决的办法自然是用相对路径代替绝对路径,其实log4j的FileAppender本身就有这样的机制,如:log4j.appender.logfile.File=${WORKDIR}/logs/app.log
其中“${WORKDIR}/”是个变量,会被System Property中的“WORKDIR”的值代替。这样,我们就可以在log4j加载配置文件之前,先用System.setProperty ("WORKDIR", WORKDIR);设置好根路径,此操作可通过一初始的servlet进行。
方法二、可以使用服务器环境变量
log4j的配置文件支持服务器的vm的环境变量,格式类似${catalina.home}
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=${catalina.home}/logs/logs_tomcat.log
log4j.appender.R.MaxFileSize=10KB
其中的${catalina.home}并非windows系统的环境变量,这个环境变量就不需要在Windows系统的环境变量中设置。之所以这样,你可以看看tomcatbincatalina.bat(startup,shutdown都是调用这个)里面自带有-Dcatalina.home="%CATALINA_HOME%"。继承这个思想,所以你也可以自己设定一个参数-Dmylog.home="D:/abc/log"到对应的服务器java启动的vm参数中
在Tomcat 5.5中的Log4j日志文件的默认相对路径是:bin目录下, 如果要配置到你的应用程序的目录下只需这样: >如果用myEclipse开发环境下用:"../webapps/你的工程目录/日志文件名"; >如果直接用tomcat5.5启动:"./webapps/你的工程目录/日志文件名";
其实应该把它放到tomcat的logs目录下就可以了 log4j.appender.R.File=../logs/log4j.log