1.在classpath的根目錄下面不放置log4j.properties
在用junit本地測試的時候會提示:

log4j:WARN No appenders could be found for logger (org.springframework.beans.factory.access.SingletonBeanFactoryLocator).
log4j:WARN Please initialize the log4j system properly.

然后我們是看不到spring加載bean的配置信息的。
在classpath路徑下加入:log4j.properties,則能夠顯示bean的加載信息

2. 在web應(yīng)用中為Spring配置log4j
Spring的做法是使用一個Servlet Listener,在Web Container啟動時把ROOT的絕對路徑寫到系統(tǒng)變量里,這樣log4j的配置文件里就可以用${myAppfuse.root}來表示剛剛設(shè)進(jìn)去的系統(tǒng)變量:log4j.appender.logfile.File=${myAppfuse.root}/logs/mylog.log
在Web.xml中配置語句如下:

<!--如果不設(shè),默認(rèn)為web.root,但最好設(shè)置,以免項目間沖突-->
<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/classes/log4j.properties</param-value>
</context-param>
<listener>  
 <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
這里配置了一個listener,也可以配置servlet:
<servlet>
  <servlet-name>log4j</servlet-name>
  <servlet-class>
   org.springframework.web.util.Log4jConfigServlet
  </servlet-class>
  <load-on-startup>1</load-on-startup>
 </servlet>
配置好了以后我們就可以在當(dāng)前應(yīng)用的logs目錄下找到日志記錄文件:mylog.log
屬性log4jConfigLocation的值建議還是設(shè)置為:/WEB-INF/classes/log4j.properties,這樣我們在不啟動web應(yīng)用的時候,做一些測試這能夠正確地記錄日志信息。