在Spring中配置log4j

leng411lian發表於2009-07-22

Spring和Log4j都是當前web開發中應用非常廣泛的技術,而且Spring對log4j的支援也相當好,今天遇到這個問題,就順手記下在Spring中配置log4j的過程,以免不知道什麼時候再用時不記得了。

[@more@]

用到的包就是spring.jar和log4j.jar了,首先要配置的是web.xml,需要增加以下幾項內容:

log4j引數:


log4jConfigLocation
/WEB-INF/log4j.properties


log4jRefreshInterval
5000

spring監聽:


org.springframework.web.util.Log4jConfigListener

spring在Log4jConfigListener中會去讀取context-param中的引數,找到log4j配置檔案的位置,其中log4jRefreshInterval是動態修改配置檔案的,非必須選項。

配置好了web.xml,然後就是log4j.properties,這個檔案包含的所有選項的用法網路上都可以查到,這裡只記錄常用的幾項。

#定義根節點,info是日誌等級(共分5級),A1是自定義輸出,console是輸出到控制檯

log4j.rootLogger=info, A1,console

#自定義輸出配置

#迴圈寫檔案模式,輸出檔名,單個檔案大小,最大檔案數,輸出格式定義

log4j.appender.A1=org.apache.log4j.RollingFileAppender

log4j.appender.A1.File=test.log
log4j.appender.A1.MaxFileSize=5MB
log4j.appender.A1.MaxBackupIndex=10

log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss,SSS} [%c{1}]-[%p]:%L - %m%n

# 輸出到控制檯模式及輸出格式
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss,SSS} [%c{1}]-[%p]:%L - %m%n

然後在自己的類檔案裡就可以定義log4j使用了。

private static Logger logger = Logger.getLogger(YOURCLASS.class);

可以使用logger.info();logger.error();logger.debug();等打出自己的日誌。

在配置完用tomcat測試時發現一個問題,就是自定義的日誌檔案test.log跑到${TOMCAT_HOME}/bin目錄下邊了,後來查了資料,透過以下配置可以修改此檔案目錄,在web.xml裡增加一個引數:


webAppRootKey
YourApp.root

然後在log4j中定義日誌檔案時如下:

log4j.appender.A1.File=${YourApp.root}/test.log

此時test.log檔案就輸出到WEB-INF同級目錄下了,當然這個也可以自己隨便指定了。

順便再記錄下,今天測試出個結論,在載入web.xml時的順序是:1.listener 2.filter 3.servlet

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7321182/viewspace-1024438/,如需轉載,請註明出處,否則將追究法律責任。

相關文章