log4j學習筆記

 

log4j可也記錄一些日誌信息如在開發階段查看程序的出錯或調試信息在產品階段查看運行情況
System.out.println的侷限性:
1、不能在運行時打開或關閉;
2、不能選擇包或類,在運行時打開或關閉;
3、輸出的信息沒有分級;
4、只能輸出文本信息;
5、不能改變輸出的位置。
log4j可以解決以上問題。

 

log4j下載地址; http://logging.apache.org/log4j

 

將下載後的文件解壓到當前目錄下找到.jar文件(log4j-1.2.15.jar)
加載到classpath路徑下


log4j的基本程序:HelloWorld
//HelloWorld.java
package test.log4j;

import org.apache.log4j.*;

public class HelloWorld {
 private static Logger log = Logger.getLogger(HelloWorld.class);
 public static void main(String[] args){
  //輸出debug級別的信息
  log.debug("This is a debug message");
  log.info("This is a info message");
  log.error("This is a error message");
 }
}
將配置文件log4j.properties文件放在src根目錄下
//log4j.properties
log4j.rootLogger = debug, appender1
log4j.appender.appender1 = org.apache.log4j.ConsoleAppender
log4j.appender.appender1.layout = org.apache.log4j.SimpleLayout
運行HelloWorld程序控制臺輸出信息爲
INFO - This is a info message !
WARN - This is a warn message!
ERROR - This is a error message!
好了現在你的log4j程序實現了!

 

log4j的核心


Logger完成日誌信息的處理
Logger可以決定輸出的層次和決定信息是否輸出
Logger輸出信息是有優先級別的:
ALL<TRACE<DEBUG<INFO<WARN<ERROR<FATAL<OFF


Appender設置日誌信息的去向
Apperder就是設置日誌輸出到什麼地方,你可以指定多個輸出位置
log4j.appender.appenderName = Appender.class;
log4j.appender.appenderName.option1 = value1;
log4j.appender.appenderName.optionN = valueN;
常用的Appender有以下幾個:
org.apache.log4j.ConsoleAppender(控制檯)
org.apache.log4j.FileAppender(文件)
org.apache.log4j.DailyRollingAppender(每天產生一個日誌文件)
org.apache.log4j.RollingAppender(文件大小到一定大小時產生一個新的文件)
org.apache.log4j.WriterAppender(將日誌信息以串流的格式發送到任意指定的地方)
org.apache.log4j.JdbcAppender(將日誌信息保存到數據庫)

 

 

Layout設置日誌信息的輸出樣式
layout設置日誌信息的格式
org.apache.appender.appenderName.layout = Layout.class
org.apache.appender.appenderName.option1 = value1
常用的Layout有以下幾個:
org.apache.log4j.HTMLLayout(以html的形式佈局)
org.apache.log4j.SimpleLayout(包含日誌級別信息和日誌信息)
org.apache.log4j.TTCCLayout(包括日誌產生的時間、執行線程、類別等信息)
org.apache.log4j.PatternLayout(可以靈活的指定佈局格式)

 

PatternLayout用來制定輸出信息的樣式;
%p輸出優先級,即degug 、 info、 warn 、error
%r 輸出自應用啓動到輸出該日誌信息所耗費的毫秒數
%t 輸出產生該日誌事件的線程名
%f 數據日誌信息所屬的類別的類別名
%c 輸出日誌信息所屬的類的全名
%d 輸出日誌時間點的日期或時間,指定格式的方式:%d{yyyy-MM-dd HH:mm:ss}
%l 輸出日誌事件的發生位置,即輸出日誌信息的語句出於所在的類別的第幾行。
%m 輸出代碼中指定的信息,如log(message)中的messge
%n 輸出一個換行符號

 

log4j的配置文件可以是:
log4j.properties
log4j.xml
兩者的配置信息基本上一樣筆者喜歡使用log4j.properties

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章