log4j,顧名思義是專門用來做日志的,有一些書和教程經(jīng)常把這種非常簡單的東西講的亂作一團(tuán),讓一些處于學(xué)習(xí)階段的朋友看了以后,感覺暈頭轉(zhuǎn)向的,我曾經(jīng)就是受害人之一,所以今天發(fā)表一篇,讓學(xué)習(xí)的人一看就懂的小文章,希望對(duì)一些學(xué)習(xí)log4j和沒用過log4j的朋友起到幫助.
log4j是Apache組織的一個(gè)開源項(xiàng)目,它是一個(gè)日志操作包,通過使用Log4j可以指定日志信息輸出的目的地,如控制臺(tái),文件,GUI組件,NT的時(shí)間記錄器,還可以控制每一條日志輸出的格式,此外通過定義日志的級(jí)別,能夠非常細(xì)致的控制日志的輸出,最好的地方是這些功能可以通過一個(gè)配置文件來靈活的進(jìn)行配置,而不需要修改程序代碼.在應(yīng)用程序中輸出日志有三個(gè)目的:
1) 監(jiān)視代碼變量的變化情況,把詳細(xì)信息記錄到文件中,進(jìn)行統(tǒng)計(jì)分析.
2) 跟蹤代碼運(yùn)行軌跡,作為日后審計(jì)的依據(jù).
3) 擔(dān)當(dāng)集成開發(fā)環(huán)境中的調(diào)試器的作用,向文件和控制器打印代碼的調(diào)試信息.
首先我們要先了解點(diǎn)概念的東西,很簡單,先知道它的6個(gè)基本類別,就是日志的級(jí)別.
1) fatal致命的
2) error錯(cuò)誤
3) warn警告
4) info信息
5) debug調(diào)試
6) trace細(xì)節(jié)
在強(qiáng)調(diào)可重用組件的今天,除了自己從頭到尾開發(fā)一個(gè)可重用的日志操作類以外,還有一個(gè)Apache為我們提供的一個(gè)強(qiáng)有力的現(xiàn)成的日志操作包Log4j.主要由三大組件構(gòu)成:
1) Logger:負(fù)責(zé)生成日志,并能夠?qū)θ罩拘畔⑦M(jìn)行分類篩選.
2) Appender:定義了日志信息輸出的目的地,指定日志信息應(yīng)該被輸出到什么地方.
3) Layout:指定日志信息的輸出格式.
概念的東西就這么點(diǎn),看看記住就OK了.主要是配置文件,這里我們就以一個(gè)JAVA工程當(dāng)例子,因?yàn)檫@樣簡單明了,讓人容易理解.我相信如果在一個(gè)簡單的JAVA工程里能把log4j理解透徹了.就算換到別的工程里也應(yīng)該融會(huì)貫通了.首先建一個(gè)JAVA工程,然后把log4j的jar包放入工程的classpath,就是放在工程的根目錄就OK了.然后創(chuàng)建一個(gè)log4j.properties的文件,記住這個(gè)文件的名字是固定的.log4j會(huì)自己來尋找這個(gè)文件,至于這個(gè)文件的配置我們稍后在說.OK現(xiàn)在包導(dǎo)好了,配置文件也弄好了.我們?cè)陬惱锖唵蔚恼{(diào)用log4j就可以使用了.下邊是例子:
import org.apache.log4j.Logger;
public class Log {
static Logger log = Logger.getLogger(Log.class);
public static void main(String[] args) {
log.fatal("致命...");
log.error("錯(cuò)誤...");
log.info("信息...");
log.debug("調(diào)試...");
}
}
#這里是定義了日志輸出的級(jí)別DUBUG,然后聲明一個(gè)控制臺(tái)和文件,名字隨便起.
log4j.rootLogger=DEBUG,console,file
#這里是配置日志輸出控制臺(tái)的相關(guān)屬性
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%-5p %d [%t] (%F,%L) - %m%n
#這里是配置日志輸出文件的相關(guān)屬性
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=log.log
log4j.appender.file.MaxFileSize=100KB
log4j.appender.file.MaxBackupIndex=1
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%-5p %d [%t] (%F,%L) - %m%n
OK,你調(diào)試通過了么?如果通過了,但是想知道配置文件里各各屬性的具體含義,那么我在附件里上傳了一份比較間接的log4j文檔,是PDF格式的.Log4J.pdf在熟悉了文檔里的相關(guān)配置的含義之后,稍加練習(xí)靈活運(yùn)用就算掌握了log4j了.