使用commons.logging結合log4j顯示調試和日誌信息

 

請在我上一篇博客“使用commons.logging中的simplelog顯示調試和日誌信息”建立的工程的基礎上再行操作。

1、到http://archive.apache.org/dist/logging/log4j,下載相應版本的log4j,我這裏選擇的是1.2.9版本(下載logging-log4j-1.2.9.zip,解壓之後在其中的dist/lib下找到log4j-1.2.9.jar),拷貝其中的log4j-1.2.9.jar文件到之前工程的WebRoot/WEB-INF/lib文件夾下

2、修改src文件夾中commons-logging配置文件,具體內容爲:

org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger

3、在src文件夾下建立log4j配置文件:log4j.properties;這個文件在編譯之後會自動拷貝到WEB-INF/classes文件夾下,此文件的內容爲:

log4j.rootLogger=DEBUG,stdout,A_default
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t](%F:%L) - %m%n
log4j.appender.A_default=org.apache.log4j.RollingFileAppender
log4j.appender.A_default.File=logTest.log
log4j.appender.A_default.MaxFileSize=100KB
log4j.appender.A_default.MaxBackupIndex=10
log4j.appender.A_default.layout=org.apache.log4j.PatternLayout
log4j.appender.A_default.layout.ConversionPattern=%d{ISO8601}-%p-%m%n

此處的log4j.rootLogger=DEBUG,stdout,A_default設置了log信息記錄級別爲DEBUG,並會採用兩種顯示模式,其中stdout設置爲再控制檯顯示,A_default則輸出爲文件。
4、運行程序,訪問index.jsp頁面,查看其日誌顯示情況,可以看到在控制檯輸出了DEBUG級別的信息,同時可以在TOMCAT根目錄的bin目錄下找到logTest.log文件,若日誌文件大小超過了100k,則可以看到還會有logTest.log.1這類文件。

5、也可以針對某個包(package)中的logger類單獨設置log信息顯示級別,比如說在log4j.properties中加入下面的配置項:

log4j.logger.org.apache.jsp.index_jsp=WARN

則在訪問index.jsp頁面的時候,只會記錄WARN級別以下的log信息。

更多的配置項目及內容,大家可以參考log4j官網文檔:http://logging.apache.org/log4j/1.2/manual.html

此處記錄log的文件logTest.log設置的爲相對目錄,大家可能不太理解,爲什麼是相對TOMCAT的目錄,而不是相對工程所在的目錄,這主要是:服務器如tomcat啓動時會自動搜索web-inf目錄和web-inf/classes目錄中log4j.properties文件,如有則自動加載,而且服務器會自動區分哪個log4j配置文件是針對那個應用的,在訪問相應的應用的時候會自動根據相應的配置文件作出處理。

更多關於“log4j中配置日誌文件相對路徑”的問題,大家可以參考一下:http://sharep.blog.51cto.com/539048/143734

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