配置log4j的日誌檔案為Tomcat的logs目錄的方法
<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.lo
<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