Java Web實踐專題——Log4j

來源:互聯網
上載者:User
 

           在開發應用的過程中,日誌可以用於偵錯工具、跟蹤程式的運行軌跡。在程式運行過程中,可以記錄程式的運行狀態,並用於審計。日誌有多種實現,Log4j是一種比較流行的實現。本文介紹Log4j日誌的使用。Log4j日誌的使用包括如下過程:l        擷取日誌的實現;l        編寫設定檔;l        初始化;l        使用。下面分別進行介紹。 1、擷取日誌實現日誌實現通常位於壓縮包中,壓縮包的名字log4j-1.2.15.jar,存放的位置:WEB-INF/lib下面。最新版本可以從官方網站下載。 2、配置要使用Log4j需要先進行配置,日誌的配置需要使用設定檔,可以採用屬性檔案也可以採用XML檔案,本文介紹的執行個體採用屬性檔案。屬性檔案的位置:WEB-INF下面,名字為:log4j.properties。記錄檔的主要內容:1)設定跟記錄器設定根記錄器的基本格式如下:log4j.rootLogger=debug,R等號後麵包括兩個資訊:記錄層級和日誌目的。記錄層級包括:OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL日誌目的可以是任意的名字,可以有多個。2)設定日誌的類型日誌的類型包括:org.apache.log4j.ConsoleAppender(控制台),org.apache.log4j.FileAppender(檔案),org.apache.log4j.DailyRollingFileAppender(每天產生一個記錄檔),rg.apache.log4j.RollingFileAppender(檔案大小到達指定尺寸的時候產生一個新的檔案),org.apache.log4j.WriterAppender(將日誌資訊以流格式發送到任意指定的地方)設定日誌的類型可以使用下面的代碼:log4j.appender.R=org.apache.log4j.RollingFileAppender3)設定記錄檔的相關屬性如果日誌的類型是檔案,需要指出檔案的位置,通過如下方式指出:log4j.appender.R.File=${catalina.home}/logs/my.log 記錄檔的大小通過如下方式制定:log4j.appender.R.MaxFileSize=10MB記錄檔重複數log4j.appender.R.MaxBackupIndex=10 4)記錄檔的輸出方式常用日誌的輸出方式如下:org.apache.log4j.HTMLLayoutorg.apache.log4j.PatternLayoutorg.apache.log4j.SimpleLayoutorg.apache.log4j.TTCCLayout下面的代碼用於設定檔案輸出方式:log4j.appender.R.layout=org.apache.log4j.PatternLayout5)記錄檔的輸出格式    如果使用PatternLayout,可以使用下面的格式符號。%r        自程式開始後消耗的毫秒數%t        表示日誌記錄請求產生的線程%p        表示日誌語句的優先順序別%r        與日誌請求相關的類別名稱%c        日誌資訊所在的類%m%n      表示日誌資訊的內容例如:log4j.appender.R.layout.ConversionPattern=%p %t %c -%m%n下面是一個完整的設定檔的內容(#表示注釋):# debug表示日誌的層級,R表示其中一個日誌,名字可以隨便取log4j.rootLogger=debug, R    #日誌的類型log4j.appender.R=org.apache.log4j.RollingFileAppender  #日誌的檔案log4j.appender.R.File=${catalina.home}/logs/my.log  #記錄檔的大小log4j.appender.R.MaxFileSize=10MB  #記錄檔的log4j.appender.R.MaxBackupIndex=10  #輸出方式log4j.appender.R.layout=org.apache.log4j.PatternLayout  #具體輸出方式log4j.appender.R.layout.ConversionPattern=%p %t %c -%m%n 3、初始化可以使用多種方式進行初始化,過程基本相同。下面是採用Servlet進行初始化的例子,參考代碼如下:Servlet源檔案:package bookstore.servlet; import javax.servlet.*;import javax.servlet.http.*;import java.io.*;import java.util.*; import org.apache.log4j.PropertyConfigurator; public class Log4JServlet extends HttpServlet{     public void init() throws ServletException{         String path = getServletContext().getRealPath("/");         String filename = path+"/WEB-INF/log4j.properties";         PropertyConfigurator.configure(filename);    }}    為了讓Web應用啟動的時候載入該Servlet,需要在web.xml中配置<load-on-startup>元素。參考代碼如下:web.xml中的聲明:<?xml version="1.0" encoding="ISO-8859-1"?> <web-app xmlns="http://java.sun.com/xml/ns/j2ee"    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"    version="2.4">     <servlet>       <servlet-name>log4j</servlet-name>       <servlet-class>bookstore.servlet.Log4JServlet</servlet-class>       <load-on-startup>1</load-on-startup>    </servlet>     <servlet-mapping>       <servlet-name>log4j</servlet-name>       <url-pattern>/log4j</url-pattern>    </servlet-mapping></web-app> 4、調用日誌配置完並初始化之後,就可以使用了。使用過程主要就是擷取日誌器,然後調用相應的方法即可。擷取日誌器的方法如下:Logger Logger.getLogger(String str)參數相當於指出日誌的類別,傳回值是Logger對象。Logger對象用於輸出日誌資訊的方法如下:fatal(String info)error(String info)warn(String info)info(String info)debug(String info)注意:在使用的時候需要匯入org.apache.log4j.Logger。下面是一個使用Log4j的例子:<%@ page contentType="text/html;charset=gb2312"%><%@ page import="org.apache.log4j.Logger"%><%   Logger log = Logger.getLogger("testLogger");    log.debug("debug message");    log.error("error message");   log.warn("warn message");   log.info("info message");   log.fatal("fatal message");%>    運行結果如下:(格式為%p %t %c -%m%n):DEBUG http-8080-1 testLogger - debug messageERROR http-8080-1 testLogger - error messageWARN http-8080-1 testLogger - warn messageINFO http-8080-1 testLogger - info messageFATAL http-8080-1 testLogger - fatal message  5、擴充知識正常情況下日誌的使用不是在JSP檔案中,而是在業務層、或者控制層,並且使用日誌的檔案會有很多,所以通常在基類中建立Logger對象,然後在各個子類中直接使用各個輸出資訊的方法即可。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.