在tomcat6下配置log4j日誌

    tomcat默認的日誌是使用commons.logging,下面以tomcat6.0.18爲例說明log4j日誌的配置。tomcat默認的也是輸出日誌日誌的,可以把conf文件夾下的logging.properties刪除或者改個其它名字,原來的日誌就不會輸出了。
    看了網上的一些介紹,大多是下載tomcat-juli.jar放到TOMCAT安裝目錄的bin文件夾下,tomcat-juli-adapters.jar放到lib文件夾下,然後把log4j.jar、log4j.properties放到lib目錄下。在我用的tomcat6.0.18下,tomcat-juli.jar在bin文件夾已經有了,至於tomcat-juli-adapters.jar則是又沒有都可以,然後log4j的放置方法是一樣的。下面給出一個log4j.properties的例子:
#
# Configures Log4j as the Tomcat system logger
# to output info level messages into a rolling log file.
#
# To continue using the "catalina.out" file (which grows forever),
# comment out the above line and uncomment the next.
org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger
#

log4j.rootLogger=Debug,A1,A2

log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t][%x] %C{8}@(%F:%L):%m%n

# 設定輸出位置,此處設定tomcat目錄的logs下,文件名爲 all.log。
log4j.appender.A2=org.apache.log4j.RollingFileAppender
log4j.appender.A2.File=${catalina.home}/logs/all.log
log4j.appender.A2.MaxFileSize=1024KB

log4j.appender.A2.layout=org.apache.log4j.PatternLayout
log4j.appender.A2.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t][%x] %C{8}@(%F:%L):%m%n

log4j.logger.org.apache=Debug

    然後建立一個簡單的應用,此處只使用一個簡單的jsp文件進行測試:
<%@page import="org.apache.log4j.Logger"%>
<%
Logger log = Logger.getLogger(this.getClass());
log.debug("test 日誌測試");
%>
page content here.
    運行這個jsp文件,就會看到在logs文件夾下面有all.log的日誌文件。同時,如果是linux操作系統,在logs下面會有catalina.out文件,也輸出的日誌信息,在windows操作系統的控制檯上會看到輸出的日誌信息。
    如果在windows操作系統上,也輸出一個catalina.out文件,就需要做一些修改:
    1、打開bin下面的startup.bat文件,把call "%EXECUTABLE%" start %CMD_LINE_ARGS%改爲call "%EXECUTABLE%" run %CMD_LINE_ARGS% 。
    2、打開bin下面的catalina.bat文件,會發現共有4處 %ACTION% ,在後面分別加上 >> %CATALINA_HOME%/logs/catalina.out 。
    重啓tomcat,就會發現在logs文件夾下出現了catalina.out文件,把原來控制檯的信息全寫進去了。
    但輸出的這個catalina.out文件,是一直增長的,也就是文件會越來越大。而通過log4j.appender.A2=org.apache.log4j.RollingFileAppender這種方式配置的日誌文件,是根據設定的文件大小自動切換的,如設置爲最大1M,當文件達到1M,會把日誌文件備份爲另一個文件,原有日誌文件則清空繼續記錄日誌。
    這種方式配置的日誌,是把tomcat所有應用的日誌都記錄在一起了,也可以分別對每個應用記錄各自的日誌文件。如在一個應用的WEB-INF/classes建立一個log4j.properties文件(log4j默認找classpath下的log4j.properties):
log4j.rootLogger=Debug,A1,A2

log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t][%x] %C{8}@(%F:%L):%m%n

#設定輸出位置,此處設定tomcat目錄的logs下,文件名爲testA.log,是按文件大小切換的。
log4j.appender.A2=org.apache.log4j.RollingFileAppender
log4j.appender.A2.File=${catalina.home}/logs/testA.log
log4j.appender.A2.MaxFileSize=1024KB

log4j.appender.A2.layout=org.apache.log4j.PatternLayout
log4j.appender.A2.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t][%x] %C{8}@(%F:%L):%m%n
    在另一個應用的WEB-INF/classes建立一個log4j.properties文件:
log4j.rootLogger=Debug,A1,A2

log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t][%x] %C{8}@(%F:%L):%m%n

#設定輸出位置,此處設定tomcat目錄的logs下,文件名爲testB.log,是按一天一個日誌文件切換的。
log4j.appender.A2=org.apache.log4j.DailyRollingFileAppender
log4j.appender.A2.File=${catalina.home}/logs/testB.log
log4j.appender.A2.DatePattern='.'yyyy-MM-dd

log4j.appender.A2.layout=org.apache.log4j.PatternLayout
log4j.appender.A2.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t][%x] %C{8}@(%F:%L):%m%n
    這樣不同的應用就把日誌記錄到不同的日誌文件中去了。
    如果日誌中出現漢字亂碼問題,可以加上類似log4j.appender.A1.Encoding=ISO8859-1這樣的語句,但是否有效果還要根據實際作調整纔可以。
發佈了35 篇原創文章 · 獲贊 1 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章