SLF4J 和 Log4j2

大家好屁使,我是IT修真院深圳分院第03期學(xué)員,一枚正直純潔善良的程序員奔则。今天給大家分享一下蛮寂,修真院官網(wǎng)JAVA(職業(yè))任務(wù)2的深度思考的擴(kuò)展部分 —— SLF4J 和 Log4j2 怎么使用?

1.背景介紹

SLF4J是怎么誕生的?

很久很久以前易茬,Apache說(shuō)服log4j以及其他的日志按照commons-logging的標(biāo)準(zhǔn)編寫酬蹋,但是由于commons-logging的類加載器有點(diǎn)問(wèn)題,實(shí)現(xiàn)起來(lái)也不友好抽莱,因此log4j的作者創(chuàng)作了SLF4J范抓,也因此與commons-logging平分天下。到底使用哪一個(gè)岸蜗,由開發(fā)者自己決定尉咕。

2.知識(shí)剖析

1)SLF4J到底是什么?

commons-logging和slf4j都是日志的接口璃岳,供用戶使用年缎,而沒(méi)有提供實(shí)現(xiàn)。log4j铃慷、logback单芜、java.logging才是日志的真正實(shí)現(xiàn)。當(dāng)我們調(diào)用接口時(shí)犁柜,接口的工程會(huì)自動(dòng)尋找恰當(dāng)?shù)膶?shí)現(xiàn)洲鸠,返回一個(gè)實(shí)現(xiàn)的實(shí)例。


2)SLF4J的實(shí)現(xiàn)原理什么馋缅?


3.常見問(wèn)題

1)Log4j怎么結(jié)合SLF4J扒腕?

2)Log4j結(jié)合SLF4J有什么優(yōu)勢(shì)?


4.解決方案

1)Log4j怎么結(jié)合SLF4J

A.添加SLF4J的jar包

B.添加適配器jar包:slf4j-log4j12

tip:實(shí)際只添加適配器jar包就可以了萤悴。


2)Log4j結(jié)合SLF4J有什么優(yōu)勢(shì)瘾腰?

有數(shù)據(jù)表明,一個(gè)應(yīng)用程序中大約有4%的代碼用來(lái)打日志覆履。在代碼中蹋盆,我們經(jīng)常需要把一些參數(shù)作為Debug級(jí)別的日志打印出來(lái)费薄,方便我們進(jìn)行調(diào)試。項(xiàng)目部署之前我們會(huì)把日志的級(jí)別調(diào)到INFO栖雾,項(xiàng)目正式運(yùn)轉(zhuǎn)的時(shí)候就不會(huì)打印Debug級(jí)別的日志楞抡。

但Log4j在這方面做的不太好,用到了isDebugEnable()并在項(xiàng)目剛運(yùn)行時(shí)就拼接字符串存到內(nèi)存里析藕,這樣不僅檢查了兩次日志級(jí)別召廷,并占用了內(nèi)存資源,導(dǎo)致性能比其他日志實(shí)現(xiàn)要差噪径。這種操作會(huì)使得我們的代碼看起來(lái)更像是在打日志而不是在實(shí)現(xiàn)某種功能柱恤。

通過(guò)結(jié)合SLF4J,Log4j也可使用參數(shù)替代字符串拼接找爱,這樣只會(huì)檢查一次日志級(jí)別,且只在需要輸出日志的時(shí)候才會(huì)拼接字符串泡孩。代碼更優(yōu)雅车摄、性能也有提升。


5.代碼實(shí)戰(zhàn)

1)Log4j結(jié)合SLF4J

2)Log4j結(jié)合SLF4J前后的性能對(duì)比

3)Log4j2怎么使用

4)Log4j和Log4j2的性能對(duì)比


6.擴(kuò)展思考

1)為什么要以類名作為logger的名字仑鸥?

首先我們要知道吮播,類通常以類代表的對(duì)象或者類可以實(shí)現(xiàn)的功能來(lái)命名,這種命名方式提高了可讀性眼俊,易于他人 識(shí)別意狠。同樣的,以類名作為logger的名字可以快速定位產(chǎn)生日志的類疮胖,還可以更精確地對(duì)每個(gè)類的日志級(jí)別环戈、輸出目的地和輸出樣式進(jìn)行調(diào)整。


2)Log4j 怎么遷移到 Log4j2澎灸?

A.前提條件

沒(méi)有調(diào)用Log4j-1.x的內(nèi)部方法院塞,比如Appenders(),LoggerRepository()

沒(méi)有使用代碼的方式配置Log4j

沒(méi)有調(diào)用DOMConfigurator或PropertyConfigurator這兩個(gè)類

B.替換jar包

把 Log4j-1.x.jar 換成 log4j-1.2-api.jar(這個(gè)jar包內(nèi)有l(wèi)og4j-api性昭、log4j-core兩個(gè)jar包)

C.修改代碼

首先要清楚拦止,jar包前綴不一樣,版本1是org.apache.log4j糜颠,版本2是org.apache.logging.log4j

a.版本1是Logger.getLogger( )汹族,改成版本2的LoggerManager.getLogger( )

b.版本1是Logger.getRootLogger( ),改成版本2的LoggerManager.getRootLogger( )


D.修改配置文件

log4j.properties換成log4j2.xml


7.參考文獻(xiàn)

參考一 ? ?Log4j2 官網(wǎng)

參考二 ? ?Log4j 遷移到 Log4j2

參考三 ? ?Log4j2 高級(jí)配置以及簡(jiǎn)單的示例

參考四 ? ?SFL4J 官網(wǎng)


8.更多討論

詳細(xì)的過(guò)程在下面的視頻中其兴。


SLF4J 和 Log4j2_騰訊視頻


PPT戳這里


今天的分享就到這里啦顶瞒,歡迎大家點(diǎn)贊、轉(zhuǎn)發(fā)忌警、留言搁拙、拍磚~

技能樹.IT修真院

“我們相信人人都可以成為一個(gè)工程師秒梳,現(xiàn)在開始,找個(gè)師兄箕速,帶你入門酪碘,掌控自己學(xué)習(xí)的節(jié)奏,學(xué)習(xí)的路上不再迷醚尉ィ”兴垦。

這里是技能樹.IT修真院,成千上萬(wàn)的師兄在這里找到了自己的學(xué)習(xí)路線字柠,學(xué)習(xí)透明化探越,成長(zhǎng)可見化,師兄1對(duì)1免費(fèi)指導(dǎo)窑业∏蔗#快來(lái)與我一起學(xué)習(xí)吧。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末常柄,一起剝皮案震驚了整個(gè)濱河市鲤氢,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌西潘,老刑警劉巖卷玉,帶你破解...
    沈念sama閱讀 216,402評(píng)論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異喷市,居然都是意外死亡相种,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門品姓,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)寝并,“玉大人,你說(shuō)我怎么就攤上這事缭黔∈尘ィ” “怎么了?”我有些...
    開封第一講書人閱讀 162,483評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵馏谨,是天一觀的道長(zhǎng)别渔。 經(jīng)常有香客問(wèn)我,道長(zhǎng)惧互,這世上最難降的妖魔是什么哎媚? 我笑而不...
    開封第一講書人閱讀 58,165評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮喊儡,結(jié)果婚禮上拨与,老公的妹妹穿的比我還像新娘。我一直安慰自己艾猜,他們只是感情好买喧,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,176評(píng)論 6 388
  • 文/花漫 我一把揭開白布捻悯。 她就那樣靜靜地躺著,像睡著了一般淤毛。 火紅的嫁衣襯著肌膚如雪今缚。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,146評(píng)論 1 297
  • 那天低淡,我揣著相機(jī)與錄音姓言,去河邊找鬼。 笑死蔗蹋,一個(gè)胖子當(dāng)著我的面吹牛何荚,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播猪杭,決...
    沈念sama閱讀 40,032評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼餐塘,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了胁孙?” 一聲冷哼從身側(cè)響起唠倦,我...
    開封第一講書人閱讀 38,896評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎涮较,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體冈止,經(jīng)...
    沈念sama閱讀 45,311評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡狂票,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,536評(píng)論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了熙暴。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片闺属。...
    茶點(diǎn)故事閱讀 39,696評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖周霉,靈堂內(nèi)的尸體忽然破棺而出掂器,到底是詐尸還是另有隱情,我是刑警寧澤俱箱,帶...
    沈念sama閱讀 35,413評(píng)論 5 343
  • 正文 年R本政府宣布国瓮,位于F島的核電站,受9級(jí)特大地震影響狞谱,放射性物質(zhì)發(fā)生泄漏乃摹。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,008評(píng)論 3 325
  • 文/蒙蒙 一跟衅、第九天 我趴在偏房一處隱蔽的房頂上張望孵睬。 院中可真熱鬧,春花似錦伶跷、人聲如沸掰读。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)蹈集。三九已至烁试,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間雾狈,已是汗流浹背廓潜。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留善榛,地道東北人辩蛋。 一個(gè)月前我還...
    沈念sama閱讀 47,698評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像移盆,于是被迫代替她去往敵國(guó)和親悼院。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,592評(píng)論 2 353

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

  • 在應(yīng)用程序中添加日志記錄總的來(lái)說(shuō)基于三個(gè)目的:監(jiān)視代碼中變量的變化情況咒循,周期性的記錄到文件中供其他應(yīng)用進(jìn)行統(tǒng)計(jì)分析...
    時(shí)待吾閱讀 5,039評(píng)論 1 13
  • 前言 最近學(xué)習(xí)開java web服務(wù)器開發(fā)据途,開始學(xué)習(xí)java,處理業(yè)務(wù)邏輯叙甸,但對(duì)其中的日志比較好奇颖医,之前沒(méi)怎么接觸...
    九風(fēng)萍舟閱讀 3,294評(píng)論 1 6
  • 在項(xiàng)目開發(fā)過(guò)程中,我們可以通過(guò) debug 查找問(wèn)題裆蒸。而在線上環(huán)境我們查找問(wèn)題只能通過(guò)打印日志的方式查找問(wèn)題熔萧。因此...
    Java架構(gòu)閱讀 3,473評(píng)論 2 41
  • 大家好,我是IT修真院北京分院第22期的學(xué)員僚祷,一枚正直純潔善良的JAVA程序員 今天給大家分享一下佛致,修真院官網(wǎng)JA...
    林氏名義閱讀 1,248評(píng)論 0 2
  • 20170816 0940 ZCLC記正式發(fā)布ACI 3.0了。好消息辙谜。3年了俺榆, 新技術(shù)成了老技術(shù)了。新產(chǎn)品也變成...
    taoza閱讀 399評(píng)論 0 1