24h購物| | PChome| 登入
2008-06-06 01:15:42| 人氣34| 回應0

學習 Log4j

推薦 0 收藏 0 轉貼0 訂閱站台

★參考官方網站:http://logging.apache.org/log4j/docs/index.html


★準備工具:

1- 由官網下載的Log4j API並解開,然後找到log4j-x.x.x.jar的檔案,
將它加入 classpath。

2- 程式部份準備寫一個TestLog4j.java及Log4j.properties設定檔。
★首先分成三部分來說:

Logger -可用Logger.getRootLogger()方法取得RootLogger,不能異動;
可以用Logger.getLogger(String Name)方法取出自訂的Logger。

Appender -指定所有的Log存放在那,支援多種appender,
比如說 console、files、GUI components、NT Event Loggers等,
一個Logger可以有很多Appender,也就是可將Log訊息輸出到螢幕,
也同時把訊息存到一個文件中。

Layout -作用是控制Log訊息的輸出方式,也就是格式化輸出的訊息。
★訊息分成5種級別:

依序為:DEBUG -> INFO -> WARN -> ERROR -> FATAL

★輸出時只會輸出該配置級別同等級及之後級別的訊息。

比如說在properties檔中我這樣寫:log4j.rootLogger = INFO, X, Y

這樣就表示,訊息只會輸出INFO -> WARN -> ERROR -> FATAL,不會輸出DEBUG訊息。另外,除了這五個等級外,也可以設為ALL或OFF, ALL很示全部訊息都輸出,OFF則表示不輸出訊息。
★輸出格式:

# %c 輸出日誌訊息所屬的類別的全名
# %d 輸出日誌時間點的日期或時間,指定格式的方式:%d{yyy-MM-dd HH:mm:ss }。
# %l 輸出日誌事件的發生位置,即輸出日誌訊息的語句處於它所在的類別的第幾行。
# %m 輸出訊息,如log(message)中的message。
# %n 輸出一個列尾符號。
# %p 輸出優先階層,即DEBUG,INFO,WARN,ERROR,FATAL。如果是調用debug()輸出的,則為DEBUG,依此類推。
# %r 輸出自應用啟動到輸出該日誌訊息所耗費的毫秒數。
# %t 輸出產生該日誌事件的線程名。
# %r 輸出自應用啟動到輸出該日誌訊息所耗費的毫秒數。
# %f 輸出日誌訊息所屬的類別的類別名。
來看看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);
}

台長: kyle
人氣(34) | 回應(0)| 推薦 (0)| 收藏 (0)| 轉寄
全站分類: 不分類

是 (若未登入"個人新聞台帳號"則看不到回覆唷!)
* 請輸入識別碼:
請輸入圖片中算式的結果(可能為0) 
(有*為必填)
TOP
詳全文