Tomcat下log4j設置文件路徑和temp目錄

轉自:http://www.cnblogs.com/dkblog/archive/2007/07/27/1980873.htmlhtml

在Web應用中的如何設置日誌文件的路徑呢?最笨的方法是寫絕對路徑,但很不方便。
而Spring的作法是使用一個Servlet Listener,在WebContainer啓動時把ROOT的絕對路徑寫到系統變量裏,這樣log4j的配置文件裏就能夠用$大括號myAppfuse.root大括號 來表示剛剛設進去的系統變量:

log4j.appender.logfile.File=$大括號myAppfuse.root大括號/logs/mylog.log 在Web.xml中配置語句以下:

<!--若是不設,默認爲web.root,但最好設置,以避免項目間衝突-->
<context-param>
<param-name>webAppRootKey</param-name>
<param-value>myappfuse.root</param-value>
</context-param>
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>/WEB-INF/log4j.properties</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener> 

若是設置爲:
#這樣是當直接啓動tomcat時會自動在tomcat的自有目錄logs下生成mylog.log(推薦)
log4j.appender.logfile.File=../logs/mylog.log

#這樣是當直接啓動tomcat時會自動在tomcat的自有目錄bin下生成mylog.log(若是是在eclipse啓動tomcat則在eclipse目錄下生成mylog.log)
log4j.appender.logfile.File=mylog.log

#在tomcat裏運行能夠這樣寫,會自動在tomcat的自有目錄logs下生mylog.log(推薦)
log4j.appender.R.File=$大括號catalina.base大括號/logs/mylog.log
===================================
另一種方式,本身設置目錄:
首先設置環境變量(跟CATALINA_BASE相似)CATALINA_LOG=任意目錄(如:D:\log);
windows下在catalina.bat裏找到 -Dcatalina.base="%CATALINA_BASE%" ,在其前面加上
-Dcatalina.log="%CATALINA_LOG%"
linux下在catalina.sh裏找到-Dcatalina.base="$CATALINA_BASE" \,在其上面加上-Dcatalina.log="$CATALINA_LOG" \

在log4j裏就能夠這樣寫了log4j.appender.R.File=$/logs/log_webdisk_log4j.log
在tomcat的logging.properties裏也能夠改1catalina.org.apache.juli.FileHandler.directory = $/logs
....
=================================
tomcat 的temp目錄設置:
一.是直接設置環境變量CATALINA_TMPDIR完成。
二.是到catalina.bat(catalina.sh)去修改。
windows:
if not "%CATALINA_TMPDIR%" == "" goto gotTmpdir
set CATALINA_TMPDIR=%CATALINA_BASE%\temp
:gotTmpdir

linux:
if [ -z "$CATALINA_TMPDIR" ] ; then
# Define the java.io.tmpdir to use for Catalina
CATALINA_TMPDIR="$CATALINA_BASE"/temp
fijava

相關文章
相關標籤/搜索