Log4j每天、每小時、每分鐘定時生成日誌文件

轉自:http://blog.csdn.net/vtopqx/article/details/8432862 


在做項目中基本上都用到了日誌log,那麼自然就會遇到問題,比方說,日誌太大了怎麼辦?日誌很亂怎麼辦?

這時我們就會想到如果能夠把日誌分爲定時的生成即:Log4j每天、每小時、每分鐘定時生成日誌文件這樣多好,既可以方便存儲亦利於查看。針對這個一想法,本人做了下測試,發現效果還是可以的,特把代碼以及配置貼出以便初學者參考:

一、首先添加必須的jar文件,如:commons-logging.jar、log4j.jar等這些,這個就不說了;

二、Web.xml配置:

<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>

一定要加上這個監聽,測試過好幾遍,如果不加上此監聽,那麼無法定時把Log中的數據存儲到文件中,即:定時生成日誌文件;

三、log4j.properties文件編寫: 

下面爲此次關鍵的部分

#LogFile Write
log4j.logger.logcase= INFO, dufLog
log4j.appender.dufLog=org.apache.log4j.DailyRollingFileAppender
log4j.appender.dufLog.File=${webapp.root}WEB-INF/logfiles/logcase/logcase
log4j.appender.dufLog.DatePattern = '_'yyyy-MM-dd-HH-mm'.log'
log4j.appender.dufLog.MaxFileSize=10MB
log4j.appender.dufLog.layout=org.apache.log4j.PatternLayout
log4j.appender.dufLog.layout.ConversionPattern=%d%n%m%n

其中logcase爲所需要產生日誌的bean中所定義的;一般來說,一個項目中有很多種日誌,即:每種日誌生成不同的文件,如:有服務啓動日誌,有bug處理日誌.....爲了不讓所有的日誌在一起混合,所以就需要自定義日誌來針對不同的功能模塊;

上面${webapp.root}默認表示項目的根目錄,整句表示日誌文件將處於目錄:WEB-INF/logfiles/logcase/logcase;

DatePattern中配置的'_'yyyy-MM-dd-HH-mm'.log' 意思是根據這個時間來定時生成文件,並且把'_'yyyy-MM-dd-HH-mm'.log'附加在原文件的後面,即:logcase_'yyyy-MM-dd-HH-mm'.log', 由於定義到mm所以就每分鐘生成一次。


四、Log產生Bean<這裏使用Struts2來測試>;


這裏的自定義Log標識:logcase就必須要與log4j.properties中的相對應,


好,上面的配置已經完成,啓動服務、運行次Action中的方法,即可記錄日誌信息,如下圖所示:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章