log4j,顧名思義是專門用來做日志的,有一些書和教程經常把這種非常簡單的東西講的亂作一團,讓一些處于學習階段的朋友看了以后,感覺暈頭轉向的,我曾經就是受害人之一,所以今天發(fā)表一篇,讓學習的人一看就懂的小文章,希望對一些學習log4j和沒用過log4j的朋友起到幫助.
log4j是Apache組織的一個開源項目,它是一個日志操作包,通過使用Log4j可以指定日志信息輸出的目的地,如控制臺,文件,GUI組件,NT的時間記錄器,還可以控制每一條日志輸出的格式,此外通過定義日志的級別,能夠非常細致的控制日志的輸出,最好的地方是這些功能可以通過一個配置文件來靈活的進行配置,而不需要修改程序代碼.在應用程序中輸出日志有三個目的:
1) 監(jiān)視代碼變量的變化情況,把詳細信息記錄到文件中,進行統(tǒng)計分析.
2) 跟蹤代碼運行軌跡,作為日后審計的依據(jù).
3) 擔當集成開發(fā)環(huán)境中的調試器的作用,向文件和控制器打印代碼的調試信息.
首先我們要先了解點概念的東西,很簡單,先知道它的6個基本類別,就是日志的級別.
1) fatal致命的
2) error錯誤
3) warn警告
4) info信息
5) debug調試
6) trace細節(jié)
在強調可重用組件的今天,除了自己從頭到尾開發(fā)一個可重用的日志操作類以外,還有一個Apache為我們提供的一個強有力的現(xiàn)成的日志操作包Log4j.主要由三大組件構成:
1) Logger:負責生成日志,并能夠對日志信息進行分類篩選.
2) Appender:定義了日志信息輸出的目的地,指定日志信息應該被輸出到什么地方.
3) Layout:指定日志信息的輸出格式.
概念的東西就這么點,看看記住就OK了.主要是配置文件,這里我們就以一個JAVA工程當例子,因為這樣簡單明了,讓人容易理解.我相信如果在一個簡單的JAVA工程里能把log4j理解透徹了.就算換到別的工程里也應該融會貫通了.首先建一個JAVA工程,然后把log4j的jar包放入工程的classpath,就是放在工程的根目錄就OK了.然后創(chuàng)建一個log4j.properties的文件,記住這個文件的名字是固定的.log4j會自己來尋找這個文件,至于這個文件的配置我們稍后在說.OK現(xiàn)在包導好了,配置文件也弄好了.我們在類里簡單的調用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("錯誤...");
log.info("信息...");
log.debug("調試...");
}
}
#這里是定義了日志輸出的級別DUBUG,然后聲明一個控制臺和文件,名字隨便起.
log4j.rootLogger=DEBUG,console,file
#這里是配置日志輸出控制臺的相關屬性
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
#這里是配置日志輸出文件的相關屬性
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,你調試通過了么?如果通過了,但是想知道配置文件里各各屬性的具體含義,那么我在附件里上傳了一份比較間接的log4j文檔,是PDF格式的.Log4J.pdf在熟悉了文檔里的相關配置的含義之后,稍加練習靈活運用就算掌握了log4j了.
posted on 2007-05-10 16:07
我心依舊 閱讀(2551)
評論(8) 編輯 收藏