Spring配置log4j執行個體首先需要在web.xml進行聲明,
<!--如果不定義webAppRootKey參數,那麼webAppRootKey就是預設的"webapp.root"--><context-param> <param-name>webAppRootKey</param-name> <param-value>struts2_hibernate_spring.root</param-value> </context-param>
而root是系統開發目錄中struts2_hibernate_spring/root這樣設定檔以及記錄檔可以在spring的協助下,放到開發環境中的任意位置
<!--由Sprng載入的log4j設定檔位置--> <context-param> <param-name>log4jConfigLocation</param-name> <param-value>/WEB-INF/log4j.properties</param-value> </context-param>
在這裡定位設定檔,需要的是從root開始的絕對路徑;
<!--Spring預設重新整理Log4j設定檔的間隔,單位為millisecond--> <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>
接下來是配置log4j.properties:
#順位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.DailyRollingFileAppender #在這裡設定日誌需要存放的位置,這裡的變數就是我們在web.xml裡設定的log4j.appender.R.File=${struts2_hibernate_spring.root}/WEB-INF/logs/log.log log4j.appender.R.layout=org.apache.log4j.PatternLayout #每天產生一個記錄檔log4j.appender.R=org.apache.log4j.DailyRollingFileAppender log4j.appender.R.DatePattern ='.'yyyy-MM-dd log4j.appender.R.layout.ConversionPattern=%d-[HL] %p %t %c - %m%n log4j.logger.org.springframework=DEBUG log4j.logger.com.ibatis.db=WARN log4j.logger.org.hibernate=DEBUG log4j.logger.org.hibernate.ps.PreparedStatementCache=WARN log4j.logger.com.myproject=DEBUG