采用spring框架的項目如何使用log4j在spring中使用log4j,有些方便的地方,
1.動態的改變記錄級別和策略,即修改log4j.properties,不需要重啟web應用,這需要在web.xml中設置一下。
2.把log文件定在/WEB-INF/logs而不需要寫絕對路徑。
3.可以把log4j.properties和其他properties一起放在/WEB-INF下,
首先我們在web.xml中需要設定
<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>60000</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
其中第二部分是能夠動態修改log4j.properties的關鍵,容器會每60秒掃描log4j的配置文件。有一點就是我們如果用RollingFileAppender或者是FileAppender時,可以通過${webapp.root}來定位到服務器的發布的該項目下,這是spring把web目錄的路徑壓入到了webap.root的系統變量。然后,在log4j.properties里就可以這樣定義logfile位置log4j.appender.logfile.File=${webapp.root}/WEB-INF/logs/myfuse.log
如果有多個web應用,怕webapp.root變量重復,可以在context-param里定義webAppRootKey