posts - 431,  comments - 344,  trackbacks - 0

          Log4j 由三個重要的組件構成:日志信息的優先級,日志信息的輸出目的地,日志信息的輸出格式。日志信息的優先級從高到低有 ERROR WARN 、 INFO 、 DEBUG ,分別用來指定這條日志信息的重要程度;日志信息的輸出目的地指定了日志將打印到控制臺還是文件中;而輸出格式則控制了日志信息的顯示內容。

          一、定義配置文件

          其實您也可以完全不使用配置文件,而是在代碼中配置 Log4j 環境。但是,使用配置文件將使您的應用程序更加靈活。 Log4j 支持兩種配置文件格式,一種是 XML 格式的文件,一種是 Java 特性文件(鍵 = 值)。下面我們介紹使用 Java 特性文件做為配置文件的方法:

          1. 配置根 Logger ,其語法為:

          log4j.rootLogger = [ level ] , appenderName, appenderName,

          其中, level 是日志記錄的優先級,分為 OFF FATAL ERROR 、 WARN 、 INFO 、 DEBUG ALL 或者您定義的級別。 Log4j 建議只使用四個級別,優先級從高到低分別是 ERROR 、 WARN 、 INFO 、 DEBUG 。通過在這里定義的級別,您可以控制到應用程序中相應級別的日志信息的開關。比如在這里定義了 INFO 級別,則應用程序中所有 DEBUG 級別的日志信息將不被打印出來。 appenderName 就是指定日志信息輸出到哪個地方。您可以同時指定多個輸出目的地。

          2. 配置日志信息輸出目的地 Appender ,其語法為:

          log4j.appender.appenderName = fully.qualified.name.of.appender.class
          log4j.appender.appenderName.option1 = value1

          log4j.appender.appenderName.option = valueN

          其中, Log4j 提供的 appender 有以下幾種:
          org.apache.log4j.ConsoleAppender
          (控制臺),

          org.apache.log4j.FileAppender
          (文件),

          org.apache.log4j.DailyRollingFileAppender
          (每天產生一個日志文件),

          org.apache.log4j.RollingFileAppender
          (文件大小到達指定尺寸的時候產生一個新的文件),
          org.apache.log4j.WriterAppender
          (將日志信息以流格式發送到任意指定的地方)

          3. 配置日志信息的格式(布局),其語法為:

          log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class
          log4j.appender.appenderName.layout.option1 = value1

          log4j.appender.appenderName.layout.option = valueN

          其中, Log4j 提供的 layout 有以下幾種:
          org.apache.log4j.HTMLLayout
          (以 HTML 表格形式布局),

          org.apache.log4j.PatternLayout
          (可以靈活地指定布局模式),

          org.apache.log4j.SimpleLayout
          (包含日志信息的級別和信息字符串),

          org.apache.log4j.TTCCLayout
          (包含日志產生的時間、線程、類別等等信息)

          Log4J 采用類似 C 語言中的 printf 函數的打印格式格式化日志信息,打印參數如下: %m 輸出代碼中指定的消息

          %p 輸出優先級,即 DEBUG INFO , WARN , ERROR FATAL
          %r
          輸出自應用啟動到輸出該 log 信息耗費的毫秒數
          %c
          輸出所屬的類目,通常就是所在類的全名
          %t
          輸出產生該日志事件的線程名
          %n
          輸出一個回車換行符, Windows 平臺為“ \r\n ”, Unix 平臺為“ \n
          %d
          輸出日志時間點的日期或時間,默認格式為 ISO8601 ,也可以在其后指定格式,比如: %d{yyy MMM dd HH:mm:ss,SSS} ,輸出類似: 2002 10 18 22 10 28 , 921
          %l
          輸出日志事件的發生位置,包括類目名、發生的線程,以及在代碼中的行數。舉例: Testlog4.main(TestLog4.java:10)

          二、在代碼中使用 Log4j

          1. 得到記錄器

          使用 Log4j ,第一步就是獲取日志記錄器,這個記錄器將負責控制日志信息。其語法為:

          public static Logger getLogger( String name)

          通過指定的名字獲得記錄器,如果必要的話,則為這個名字創建一個新的記錄器。 Name 一般取本類的名字,比如:

          static Logger logger = Logger.getLogger ( ServerWithLog4j.class.getName () )

          2. 讀取配置文件

          當獲得了日志記錄器之后,第二步將配置 Log4j 環境,其語法為:

          BasicConfigurator.configure () 自動快速地使用缺省 Log4j 環境。
          PropertyConfigurator.configure ( String configFilename)
          :讀取使用 Java 的特性文件編寫的配置文件。
          DOMConfigurator.configure ( String filename )
          :讀取 XML 形式的配置文件。

          3. 插入記錄信息(格式化日志信息)

          當上兩個必要步驟執行完畢,您就可以輕松地使用不同優先級別的日志記錄語句插入到您想記錄日志的任何地方,其語法如下:

          Logger.debug ( Object message ) ;
          Logger.info ( Object message ) ;
          Logger.warn ( Object message ) ;
          Logger.error ( Object message ) ;

          posted on 2006-09-04 16:46 周銳 閱讀(155) 評論(0)  編輯  收藏 所屬分類: Java
          主站蜘蛛池模板: 正安县| 垫江县| 邓州市| 沈阳市| 潼南县| 重庆市| 宿州市| 长治县| 正宁县| 布拖县| 平果县| 台东市| 高碑店市| 辽中县| 印江| 古交市| 高尔夫| 华阴市| 敦煌市| 定西市| 新竹市| 崇信县| 太原市| 石泉县| 合山市| 兖州市| 英吉沙县| 苗栗县| 皮山县| 隆回县| 郎溪县| 平乡县| 体育| 黄冈市| 菏泽市| 日土县| 罗源县| 桃江县| 长顺县| 大厂| 台安县|