1. Log4J概述
1.1. Log4J是什么
Log4j是Apache的一個開源項目殊者,通過使用Log4j舒岸,我們可以控制日志信息輸送的目的地是控制臺抚太、文件督弓、GUI組件营曼,甚至是套接口服務器、NT的事件記錄器愚隧、UNIX Syslog守護進程等蒂阱;我們也可以控制每一條日志的輸出格式;通過定義每一條日志信息的級別狂塘,我們能夠更加細致地控制日志的生成過程录煤。最令人感興趣的就是,這些可以通過一個配置文件來靈活地進行配置荞胡,而不需要修改應用的代碼妈踊。
1.2. 為什么要使用Log4J框架
問題:我們直接使用System.out.println就可以將調(diào)試信息輸出,為什么需要使用Log4J來編寫編寫日志信息呢泪漂?
答:Log4J框架的功能更加強大廊营,注意表現(xiàn)為一下三點
可以通過配置實現(xiàn)不僅僅在控制臺輸出到控制臺,也可以輸出到文件
可以通過日志級別指定輸出日志
可以通過參數(shù)指定輸出日志的格式
1.3. 包說明
1.3.1. 下載路徑
下載路徑:<u>http://logging.apache.org/log4j/1.2/download.html</u>
1.3.2. 目錄說明
1. 配置Log4j
Log4J的配置文件(Configuration File)就是用來設置記錄器的級別萝勤、存放器和布局的露筒,它可接key=value格式的設置或xml格式的設置信息。通過配置纵刘,可以創(chuàng)建出Log4J的運行環(huán)境邀窃。
1.1. 配置文件
Log4J配置文件的基本格式如下:
其中 [level] 是日志輸出級別,共有5級:
Appender 為日志輸出目的地假哎,Log4j提供的appender有以下幾種:
Layout:日志輸出格式瞬捕,Log4j提供的layout有以下幾種:
打印參數(shù): Log4J采用類似C語言中的printf函數(shù)的打印格式格式化日志信息,如下:
2.2.在代碼中初始化Logger
1)在程序中調(diào)用BasicConfigurator.configure()方法:給根記錄器增加一個ConsoleAppender舵抹,輸出格式通過PatternLayout設為"%-4r [%t] %-5p %c %x - %m%n"肪虎,還有根記錄器的默認級別是Level.DEBUG.
2)配置放在文件里,通過命令行參數(shù)傳遞文件名字惧蛹,通過PropertyConfigurator.configure(args[x])解析并配置扇救;
3)配置放在文件里刑枝,通過環(huán)境變量傳遞文件名等信息,利用log4j默認的初始化過程解析并配置迅腔;
4)配置放在文件里装畅,通過應用服務器配置傳遞文件名等信息,利用一個特殊的servlet來完成配置沧烈。
- 為不同的 Appender 設置日志輸出級別:
當調(diào)試系統(tǒng)時掠兄,我們往往注意的只是異常級別的日志輸出,但是通常所有級別的輸出都是放在一個文件里的锌雀,如果日志輸出的級別是BUGB煜Α?那就慢慢去找吧腋逆。
這時我們也許會想要是能把異常信息單獨輸出到一個文件里該多好啊婿牍。當然可以,Log4j已經(jīng)提供了這樣的功能惩歉,我們只需要在配置中修改Appender的Threshold 就能實現(xiàn),比如下面的例子:
[配置文件]
[代碼中使用]
運行一下等脂,看看異常信息是不是保存在了一個單獨的文件error.log中
Log4j2 ,因為log4j的配置文件是Properties的撑蚌。工具無法提升的它的標簽慎菲。Log4j2注意就是將配置文件修改為XML的!锨并!