將Log4J基本的幾個項目Logger、Level、Appenders、Layouts、Configuration 等做一個簡單的說明讓你能夠在短時間之內稍微了解Log4j以便進一步的運用及了解。

  • 記錄器(Logger)

記錄器(Logger)跟System.out.println有著非常大的不同。
記錄器(Logger)你可以決定開啟或者關閉Log的輸出層級,減少
Log輸出所佔的空間。
記錄器(Logger)允許建立多個,但之間的關係則由命名來得到。
Log4j希望在命名Logger的時候可以依據dotted names。
Ex.
1.com.nbp是com.nbp的父節點
2.java是java.util的父節點
3.java.util又是java.util.Vector的父節點
這樣命名的原則是依據開發人員而定。

Logger裡面有一個所謂的root Logger,有兩個特徵
1.永遠存在
2.不能用類別名稱取得,必須使用
Logger.getRootLogger

Logger class基本methods如下

package org.apache.log4j;

 public class Logger {

   // Creation & retrieval methods:
   public static Logger getRootLogger();
   public static Logger getLogger(String name);

   // printing methods:
   public void debug(Object message);
   public void info(Object message);
   public void warn(Object message);
   public void error(Object message);
   public void fatal(Object message);

   // generic printing method:
   public void log(Level l, Object message);
}

  • 層級(Level)

Log4j的可定義層級(Level) 區分以下幾種
ALL,DEBUG,INFO,WARN,ERROR,FATAL,OFF
這些定義在 org.apache.log4j.Level
當然你也可以自行定義自己想要的層級。

各層級之間的關係如下:
DEBUG < INFO < WARN < ERROR < FATAL

  • 存放器(Appenders)

 


2.也可以同時使用多組的存放器(Appenders)

  • 格式(Layouts)

1.PatternLayout:最常用到的應該是patternLayout,他的出輸有點類似C的printf需要設定一些輸出格式的參數,此Layout最受歡迎也最常使用.
2.XMLLayout
3.HTMLLayout
4.SimpleLayout輸出格式只有層級和Log文字以-區隔
Ex. DEBUG - Hello world

5.TTCCLayout輸出格式包含時間,thread,類別,說明的資訊文字, 繼承名稱
Ex.
467 [main] INFO  org.apache.log4j.examples.Sort - Exiting main method.
467 - 程式執行一直到這個Log出現的時間
[main] - Thread輸出文字
INFO - 層級
org.apache.log4j.examples.Sort - 類別資料輸出
Exiting main - 在 - 之後的文字就是程式輸出文字

  • 組態(Configuration)

一些Log4j的設定可以透過組態檔案來定義。
1.PropertiesConfigurator,這個比XML簡單編輯而且易懂。
2.DOMConfigurator

1.主要提供多種輸出方式Console,File,rolling file,GUI,TCP/IP,NT Event Log,Unix Syslog daemon,JDBC,SMTP,JMS.

piratechu 發表在 痞客邦 PIXNET 留言(0) 人氣()