log4j使用教程

Log4j簡(jiǎn)介

? ? ? ?Log4j是Apache的一個(gè)開(kāi)放源代碼項(xiàng)目,通過(guò)使用Log4j舶担,我們可以控制日志信息輸送的目的地是控制臺(tái)坡疼、文件、GUI組件衣陶、甚至是套接口服務(wù)器柄瑰、NT的事件記錄器、UNIX Syslog守護(hù)進(jìn)程等剪况;我們也可以控制每一條日志的輸出格式教沾;通過(guò)定義每一條日志信息的級(jí)別,我們能夠更加細(xì)致地控制日志的生成過(guò)程译断。最令人感興趣的就是授翻,這些可以通過(guò)一個(gè)配置文件來(lái)靈活地進(jìn)行配置,而不需要修改應(yīng)用的代碼孙咪。


以Java項(xiàng)目為例介紹log4j配置步驟

工程結(jié)構(gòu)如下:


1.添加log4j相關(guān)jar包(maven)

<!--添加log4j相關(guān)jar包-->

<dependency>

? ? <groupId>log4j</groupId>

? ? <artifactId>log4j</artifactId>

? ? <version>1.2.16</version>

</dependency>


2.log4j.properties配置

#日志配置

log4j.rootLogger = DEBUG,stdout,file

#控制臺(tái)輸出

log4j.appender.stdout=org.apache.log4j.ConsoleAppender

log4j.appender.stdout.Target=System.out

log4j.appender.stdout.Threshold=DEBUG

log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

log4j.appender.stdout.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss}[ %p ]%m%n

#所有文件輸出

log4j.appender.file = org.apache.log4j.FileAppender

log4j.appender.file.File = D:/logs/log.log

log4j.appender.file.Encoding=UTF-8log4j.appender.file.name = fileLogDemo

log4j.appender.file.Threshold=DEBUG

log4j.appender.file.layout=org.apache.log4j.PatternLayout

log4j.appender.file.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c {Num}] [%l] [ %t:%r ] - [ %p ]? %m%n

log4j.appender.file.append =true


3.測(cè)試類

import org.apache.log4j.Logger;

public

class log4jTest {

? ? //獲取日志記錄器Logger堪唐,名字為本類類名privatestaticLogger logger = Logger.getLogger(log4jTest.class);


? ? publicstaticvoid main(String[] args) {

? ? ? ? for(inti=0;i<3;i++){

? ? ? ? ? ? // 記錄debug級(jí)別的信息logger.debug("log4j日志輸出:This is debug message.");

? ? ? ? ? ? // 記錄info級(jí)別的信息logger.info("log4j日志輸出:This is info message.");

? ? ? ? ? ? // 記錄error級(jí)別的信息logger.error("log4j日志輸出:This is error message.");

? ? ? ? }

? ? }

}


控制臺(tái)輸出結(jié)果


日志文件輸出結(jié)果



log4j配置說(shuō)明

log4j包含三個(gè)組件,分別是 Logger(記錄器)、Appender(輸出目的地)翎蹈、Layout(日志布局)淮菠。可分別簡(jiǎn)單理解為"日志類別"荤堪、"日志要輸出的地方"和"日志以何種形式輸出"合陵。


1、配置Logger記錄器

log4j.rootLogger = [ level ] , appenderName, appenderName, …

level表示日志記錄的優(yōu)先級(jí)逞力,分為OFF曙寡、FATAL糠爬、ERROR寇荧、WARN、INFO执隧、DEBUG揩抡、ALL或者你定義的級(jí)別。

Log4j建議使用四個(gè)級(jí)別镀琉,優(yōu)先級(jí)從高到低分別是ERROR峦嗤、WARN、INFO屋摔、DEBUG烁设。

通過(guò)在這里定義的級(jí)別,你可以控制到應(yīng)用程序中相應(yīng)級(jí)別的日志信息的開(kāi)關(guān)。比如在這里定義了INFO級(jí)別装黑,則應(yīng)用程序中所有DEBUG級(jí)別的日志信息將不被打印出來(lái)副瀑。


appenderName就是指日志輸出的目的。你可以靈活地定義日志輸出恋谭,也可以同時(shí)指定多個(gè)輸出目的地糠睡。

Log4j配置文件實(shí)現(xiàn)了輸出到控制臺(tái)、文件疚颊、回滾文件狈孔、發(fā)送日志郵件、輸出到數(shù)據(jù)庫(kù)日志表材义、自定義標(biāo)簽等全套功能均抽。


2、配置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ā)送到任意指定的地方)


3喘漏、配置layout日志布局

org.apache.log4j.HTMLLayout(HTML表格形式)

org.apache.log4j.SimpleLayout(簡(jiǎn)單格式的日志,只包括日志信息的級(jí)別和指定的信息字符串 华烟,如:DEBUG - Hello)

org.apache.log4j.TTCCLayout(日志的格式包括日志產(chǎn)生的時(shí)間翩迈、線程、類別等等信息)

org.apache.log4j.PatternLayout(靈活地自定義日志格式)


使用org.apache.log4j.PatternLayout來(lái)自定義信息格式時(shí)盔夜,可以使用ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c {Num}] [%l] [ %t:%r ] - [ %p ]??%m%n 來(lái)格式化信息

%c 輸出所屬類的全名负饲,可寫(xiě)為 %c{Num} ,Num類名輸出的范圍 如:"com.sun.aaa.classB",%C{2}將使日志輸出輸出范圍為:aaa.classB%d 輸出日志時(shí)間其格式為 可指定格式 如 %d{HH:mm:ss}等%l 輸出日志事件發(fā)生位置,包括類目名喂链、發(fā)生線程返十,在代碼中的行數(shù)%n 換行符%m 輸出代碼指定信息,如info(“message”),輸出message%p 輸出日志的優(yōu)先級(jí)椭微,即 FATAL ,ERROR 等%r 輸出從啟動(dòng)到顯示該條日志信息所耗費(fèi)的時(shí)間(毫秒數(shù))%t 輸出產(chǎn)生該日志事件的線程名


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末洞坑,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子蝇率,更是在濱河造成了極大的恐慌迟杂,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,682評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件本慕,死亡現(xiàn)場(chǎng)離奇詭異排拷,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)锅尘,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,277評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門监氢,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人,你說(shuō)我怎么就攤上這事浪腐『渭Γ” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,083評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵牛欢,是天一觀的道長(zhǎng)骡男。 經(jīng)常有香客問(wèn)我,道長(zhǎng)傍睹,這世上最難降的妖魔是什么简逮? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,763評(píng)論 1 295
  • 正文 為了忘掉前任禁炒,我火速辦了婚禮查坪,結(jié)果婚禮上参淹,老公的妹妹穿的比我還像新娘。我一直安慰自己访得,他們只是感情好龙亲,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,785評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著悍抑,像睡著了一般鳄炉。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上搜骡,一...
    開(kāi)封第一講書(shū)人閱讀 51,624評(píng)論 1 305
  • 那天拂盯,我揣著相機(jī)與錄音,去河邊找鬼记靡。 笑死谈竿,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的摸吠。 我是一名探鬼主播空凸,決...
    沈念sama閱讀 40,358評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼寸痢!你這毒婦竟也來(lái)了呀洲?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,261評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤轿腺,失蹤者是張志新(化名)和其女友劉穎两嘴,沒(méi)想到半個(gè)月后丛楚,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體族壳,經(jīng)...
    沈念sama閱讀 45,722評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年趣些,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了仿荆。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,030評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖拢操,靈堂內(nèi)的尸體忽然破棺而出锦亦,到底是詐尸還是另有隱情,我是刑警寧澤令境,帶...
    沈念sama閱讀 35,737評(píng)論 5 346
  • 正文 年R本政府宣布杠园,位于F島的核電站,受9級(jí)特大地震影響舔庶,放射性物質(zhì)發(fā)生泄漏抛蚁。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,360評(píng)論 3 330
  • 文/蒙蒙 一惕橙、第九天 我趴在偏房一處隱蔽的房頂上張望瞧甩。 院中可真熱鬧,春花似錦弥鹦、人聲如沸肚逸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,941評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)朦促。三九已至,卻和暖如春栓始,著一層夾襖步出監(jiān)牢的瞬間思灰,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,057評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工混滔, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留洒疚,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,237評(píng)論 3 371
  • 正文 我出身青樓坯屿,卻偏偏與公主長(zhǎng)得像油湖,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子领跛,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,976評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 在應(yīng)用程序中添加日志記錄總的來(lái)說(shuō)基于三個(gè)目的:監(jiān)視代碼中變量的變化情況乏德,周期性的記錄到文件中供其他應(yīng)用進(jìn)行統(tǒng)計(jì)分析...
    時(shí)待吾閱讀 5,050評(píng)論 1 13
  • 在應(yīng)用程序中添加日志記錄總的來(lái)說(shuō)基于三個(gè)目的:監(jiān)視代碼中變量的變化情況,周期性的記錄到文件中供其他應(yīng)用進(jìn)行統(tǒng)計(jì)分析...
    時(shí)待吾閱讀 4,988評(píng)論 0 6
  • from:https://www.cnblogs.com/ITtangtang/p/3926665.html一吠昭、L...
    enshunyan閱讀 3,292評(píng)論 0 0
  • Log4J的配置文件(Configuration File)就是用來(lái)設(shè)置記錄器的級(jí)別喊括、存放器和布局的,它可接key...
    Alex_1799閱讀 45,177評(píng)論 0 11
  • 用室友的手機(jī)拍了矢棚,光線不太好郑什,加了濾鏡。啦啦啦德瑪西亞 嗚哇蒲肋,我的新膠帶回來(lái)了蘑拯,迫不及待要用他們了钝满,天哪太好看了。...
    Ashia幻想者閱讀 174評(píng)論 0 0