1. 程式人生 > >spring中配置log4j

spring中配置log4j

以前都是直接用log4j,重來沒自已配置過,學習一下如何在spring環境中配置log4j。

第一步:新增log4j的相關包,這個步驟對於spring環境可以省了,應該已經有了。

第二步:在spring的環境中新增log4j的配置。

	<context-param>
      	<param-name>webAppRootKey</param-name>
      	<param-value>應用名.root</param-value>
 	</context-param>
 
 	<context-param>
      	<param-name>log4jConfigLocation</param-name>
      	<param-value>WEB-INF/log4j.properties</param-value>
 	</context-param>
 	
 	<context-param>
      	<param-name>log4jRefreshInterval</param-name>
      	<param-value>3000</param-value>
 	</context-param>

	<listener>
  		<listener-class>
       		org.springframework.web.util.Log4jConfigListener
  		</listener-class>
 	</listener>
這相當於按spring的規範,將log4j進行初始化,無非是指定一下配置檔案位置。

應用名.root 相當於新增一個系統變數,主要是為了指定應用的路徑。

第三步:當於就是log4j本身的配置了。

log4j.rootCategory=INFO, stdout , R
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d-[HL] %p %t %c - %m%n

log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=${應用名.root}/WEB-INF/logs/xx.log
log4j.appender.R.MaxFileSize=1024KB
log4j.appender.R.MaxBackupIndex=10
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d-[HL] %p %t %c - %m%n

log4j.logger.org.springframework=DEBUG
log4j.logger.org.hibernate=DEBUG
log4j.logger.org.hibernate.ps.PreparedStatementCache=WARN
log4j.logger.com.lagooo.as=DEBUG
{應用名.root}指的是第二步配的變數,這裡要注意一下,如果是在myeclipse的開發環境,這個路徑是個臨時目錄,是在

metadata下面。\.metadata\.me_tcat\webapps\應用名

這個要注意,在正式執行時就會是你理解的目錄了。

關於配置,最主要的幾點是:

1:org.apache.log4j.RollingFileAppender 這是檔案方式的輸出,但可能是多個檔案。

2:log4j.appender.R.MaxFileSize=1024KB  規定最大到1024K,就生成新檔案。

      log4j.appender.R.MaxBackupIndex=10  最多生成10個,

      這種方式下,日誌檔名會是:xx.log  xx.log.1  xx.log.2……

3:log4j.appender.R.layout.ConversionPattern 這是內容部分:就不再一一介紹了,可查log4j的幫助。

4:最後幾行約定了相應程式碼包出錯時的日誌級別。

第四步:使用:

	import org.apache.log4j.Logger;
	private static Logger log = Logger.getLogger(SessionListener.class);

	log.info("SessionListener contextInitialized!");

    引入logger,在類中生成靜態例項,呼叫  info debug error……方法。