Log4j 學(xué)習(xí)
介紹
log4j是Apache的開(kāi)源項(xiàng)目,是一個(gè)功能強(qiáng)大的日志組件试幽,提供方便的日志記錄凉夯。通過(guò)使用Log4j杜顺,我們可以控制日志信息輸出的目的地是控制臺(tái)裁僧、文件个束、GUI組件、甚至是套接口服務(wù)器聊疲、NT的事件記錄器茬底、UNIX Syslog守護(hù)進(jìn)程等;也可以控制每一條日志的輸出格式获洲;定義每一條日志信息的級(jí)別阱表。而這些可以通過(guò)一個(gè)配置文件來(lái)靈活地進(jìn)行配置,不需要修改應(yīng)用代碼贡珊。Log4j支持兩種配置文件格式最爬,一種是XML文件,一種是JAVA特性文件(鍵=值)门岔。
三個(gè)重要的組件
logger:負(fù)責(zé)采集日志信息
appender:負(fù)責(zé)將日志信息發(fā)布到不同的地方
layout:負(fù)責(zé)以各種風(fēng)格格式化日志信息
a)配置根Logger 爱致,語(yǔ)法:
log4j.rootLogger = [ level ] , appenderName, appenderName,
level 的級(jí)別如下(由高到低):
OFF: 最高等級(jí),用于關(guān)閉所有日志
FATAL: 指出每個(gè)嚴(yán)重的錯(cuò)誤事件將會(huì)導(dǎo)致應(yīng)用程序退出
ERROR: 指出雖然發(fā)生錯(cuò)誤事件寒随,但不影響系統(tǒng)的繼續(xù)運(yùn)行
WARN: 表明會(huì)出現(xiàn)潛在的錯(cuò)誤情形
INFO : 一般和在粗粒度級(jí)別上糠悯,強(qiáng)調(diào)應(yīng)用程序的運(yùn)行全程
DEBUG : 一般用于細(xì)粒度級(jí)別上帮坚,對(duì)調(diào)試應(yīng)用程序非常有幫助
ALL : 最低等級(jí),打開(kāi)所有日志記錄
{ 注意: 日志記錄的級(jí)別有繼承性互艾,子類會(huì)記錄父類的所有的日志級(jí)別 }
實(shí)例:log4j.rootLogger = INFO, studo, E:應(yīng)用程序中所有DEBUG級(jí)別的日志信息將不被打印出來(lái)试和,輸出的目的地是studo和E⊥【如果日志級(jí)別比設(shè)置的級(jí)別低灰署,將不會(huì)被打印出來(lái)的】
b) appender----日志信息輸出目的地(可以指定多個(gè)目的地),語(yǔ)法:
log4j.appender.appenderName = fully.qualified.name.of.appender.class
log4j.appender.appenderName.option1 = value1
......
log4j.appender.appenderName.option = value
Log4j提供以下幾種appender:
org.apache.log4j.ConsoleAppender 控制臺(tái)
org.apache.log4j.FileAppender 文件
org.apache.log4j.DailyRollingFileAppender 每天產(chǎn)生一個(gè)日志文件
org.apache.log4j.RollingFileAppender 文件大小到達(dá)指定尺寸的時(shí)候生產(chǎn)一個(gè)新的日志文件
org.apache.log4j.WriterAppender 將日志信息以流格式發(fā)送到任意指定的地方
c) layout----配置日志信息格式判帮,用法:
log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class
log4j.appender.appenderName.layout.option1 = value1
…
log4j.appender.appenderName.layout.option = valueN
Log4j提供的layout有以下幾種:
org.apache.log4j.HTMLLayout HTML表格形式布局
org.apache.log4j.PatternLayout 靈活地指定布局模式
org.apache.log4j.SimpleLayout 簡(jiǎn)單格式的日志局嘁,只包括日志信息的級(jí)別和指定的信息字符串 ,如:DEBUG - Hello)
org.apache.log4j.TTCCLayout 包含日志產(chǎn)生的時(shí)間晦墙、線程悦昵、類別等等信息
當(dāng)使用org.apache.log4j.PatternLayout來(lái)自定義信息格式時(shí),可以使用
log4j.appender.A1.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %p -%m%n 來(lái)格式化信息,Log4J采用類似C語(yǔ)言中的printf函數(shù)的打印格式格式化日志信息晌畅,如下:
%m 輸出代碼中指定的消息
%p 輸出優(yōu)先級(jí)但指,即DEBUG,INFO抗楔,WARN棋凳,ERROR,F(xiàn)ATAL
%r 輸出自應(yīng)用啟動(dòng)到輸出該log信息耗費(fèi)的毫秒數(shù)
%c 輸出所屬的類目连躏,通常就是所在類的全名
%t 輸出產(chǎn)生該日志事件的線程名
%n 輸出一個(gè)回車換行符剩岳,Windows平臺(tái)為“\r\n”,Unix平臺(tái)為“\n”
%d 輸出日志時(shí)間點(diǎn)的日期或時(shí)間入热,默
![Uploading LOG_401888.png . . .]
認(rèn)格式為ISO8601拍棕,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS}勺良,輸出類似:2002年10月18日 22:10:28绰播,921
%l 輸出日志事件的發(fā)生位置,包括類目名尚困、發(fā)生的線程蠢箩,以及在代碼中的行數(shù)。舉例:Testlog4.main(TestLog4.java:10)
log4j在web項(xiàng)目中的配置使用:
- 下載相關(guān)的jar包事甜,如:log4j-1.2.17.jar忙芒,放到項(xiàng)目lib文件下,在src下面下面新建 log4j.properties讳侨。
log.png -
在src下面新建log4j配置文件呵萨,如:
l.png
以上就是log4j的使用,關(guān)鍵在于熟練掌握它的三大組件O(∩_∩)O哈哈~