JAVA日志的前世今生

? ? ? ?這世界上很多事情昼激,看起來就像彩虹一樣炫目而神奇拖陆,實(shí)際上背后蘊(yùn)含著隨處可見的原理障本。就好像靜兒幾年前買過一件超貴的防輻射服教届,當(dāng)時銷售人員把手機(jī)嚴(yán)嚴(yán)實(shí)實(shí)的包在防輻射服里,然后讓我打電話測試驾霜,果然沒有信號案训。

直到今天,靜兒為了寫文章粪糙,把自己蒙在空調(diào)被里强霎,額,竟然連不上網(wǎng)猜旬。于是掀起一個被角,“大象”的巡檢結(jié)果噠噠噠的彈出來了倦卖。然后我感慨:自己當(dāng)年何苦買那么貴一個“圍裙”洒擦。

????日志作為邏輯跟蹤、線上問題排查怕膛、監(jiān)控報警的有效基礎(chǔ)利器被開發(fā)人員所熟知熟嫩。問題發(fā)現(xiàn)、定位到解決褐捻,都離不開它掸茅,真是如彩虹般絢爛。而從它的演進(jìn)過程也能看到現(xiàn)代互聯(lián)網(wǎng)發(fā)展的一個縮影柠逞。


一 最原始的日志:print昧狮、alert


????????啥?這也算日志板壮。

是的逗鸣。記得大概十年前,不管是C/S模式(客戶端+服務(wù)端模式)還是B/S(瀏覽器+服務(wù)端模式)绰精。因?yàn)橹挥星岸撕秃蠖私换ミ@一層撒璧,整個項(xiàng)目都做在一個工程里,大家驗(yàn)證基本上用的前端就是alert笨使,后臺就是System.out.print卿樱。需求決定設(shè)計。鏈路短硫椰,這個基本就夠用繁调。

二 JUL

java有自己的日志框架萨蚕,細(xì)心的朋友可能注意到過:java.util.logging。

由于其API并不完善涉馁,對開發(fā)者不是很友好门岔,對于日志的級別分類也不是很清晰。所以大家用的很少烤送。

三 Log4j

有人注意到JUL的一些缺陷寒随,做出了Log for Java。就是曾靜風(fēng)靡一時的Log4j帮坚。

Log4j是Apache的一個開源項(xiàng)目妻往,通過使用Log4j,可控制日志信息輸送的目的地是控制臺试和、文件讯泣、數(shù)據(jù)庫等。也可以控制每一條日志的輸出格式阅悍,通過定義每一條日志信息的級別好渠,能夠更加細(xì)致的控制日志的生成過程。

Log4j有7中不同的log級別节视,按照等級從低到高依次為trace

Log4j支持兩種格式的配置文件:properties和xml拳锚。包含三個主要的組件:Logger、appender寻行、Layout霍掺。



四 JCL

Jakarta對于java開發(fā)人員來說,第一反應(yīng)不是印度尼西亞的首都拌蜘,而是Jakarta Commons杆烁。而JCL就是Jakarta Commons-Logging的縮寫。

JakartaCommons是Jakarta的一個子項(xiàng)目简卧,目的是創(chuàng)建和維護(hù)獨(dú)立與其他框架和產(chǎn)品的程序包兔魂。

JCL的初衷是:java自身的一些包都用自己的JUL,而Log4j又那么好用举娩。怎么讓他們愉快的相處呢入热?

它就提供了一套API門面來掩蓋真正的Logger實(shí)現(xiàn)。這就是設(shè)計模式里常用的門面模式晓铆,可以進(jìn)行不同Logger實(shí)現(xiàn)的切換勺良。它的缺點(diǎn)是算法復(fù)雜,出了異常很難修復(fù)骄噪。

五 SLF4J

?????SLF4J=Simple Logging Facade for Java尚困,中文叫:簡單日志門面。他的作者就是Log4j的作者链蕊。

SLF4J為了解決JCL的缺點(diǎn)而生事甜,簡單易用谬泌。


六 Logback

????Log4j的作者是對技術(shù)有著執(zhí)著的追求的技術(shù)學(xué)者。他為了實(shí)現(xiàn)一個可靠逻谦、通用掌实、快速而又靈活的Java日志框架這一目標(biāo),又發(fā)明了Logback邦马。

????Logback有三個模塊

1.logback-core:日志處理核心組件

2.logback-classic:完整的實(shí)現(xiàn)了SLF4j API贱鼻,用于切換日志實(shí)現(xiàn)。

3.logback-access:與Servlet容器集成提供通過http來訪問日志的功能滋将。

????因?yàn)閘ogback比log4j大約快10倍邻悬、消耗更少的內(nèi)存,遷移成本也很低随闽,自動壓縮日志父丰、支持多樣化配置、不需要重啟就可以恢復(fù)I/O異常等優(yōu)勢掘宪,又名噪一時蛾扇。反正靜兒是用了很多年。


七 Log4j2

????Log4j2與Logback非常類似魏滚,但是它有自己的亮點(diǎn):如插件式結(jié)構(gòu)镀首、配置文件優(yōu)化、異步日志栏赴。


八?日志系統(tǒng)

????上面所說的日志都是代碼層面蘑斧。但是實(shí)際使用時由于線上都是多個節(jié)點(diǎn)并行在跑靖秩。為了看日志须眷,不得不登錄多個服務(wù)器。所以聰明的技術(shù)人員就想到了使用RSA授權(quán)來集中多個服務(wù)的操作于一個終端沟突,這樣的工具代表是:polysh花颗。

但是這樣,工具使用之前的操作還是挺麻煩的惠拭,不如使用界面做一個系統(tǒng)扩劝。

Scribe是Facebook開源的日志收集系統(tǒng)。它從各種日志源收集日志职辅,存儲在中央存儲系統(tǒng)棒呛,進(jìn)行集中的分析處理。

????業(yè)界比較流行的做法是使用Scribe+ES域携。Scribe收集上來的日志放入搜索引擎簇秒,用戶使用搜索引擎來靈活的查看自己感興趣的日志,如同訪問一個網(wǎng)站秀鞭。


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末趋观,一起剝皮案震驚了整個濱河市扛禽,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌皱坛,老刑警劉巖编曼,帶你破解...
    沈念sama閱讀 207,248評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異剩辟,居然都是意外死亡掐场,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評論 2 381
  • 文/潘曉璐 我一進(jìn)店門抹沪,熙熙樓的掌柜王于貴愁眉苦臉地迎上來刻肄,“玉大人,你說我怎么就攤上這事融欧∶羝” “怎么了?”我有些...
    開封第一講書人閱讀 153,443評論 0 344
  • 文/不壞的土叔 我叫張陵噪馏,是天一觀的道長麦到。 經(jīng)常有香客問我,道長欠肾,這世上最難降的妖魔是什么瓶颠? 我笑而不...
    開封第一講書人閱讀 55,475評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮刺桃,結(jié)果婚禮上粹淋,老公的妹妹穿的比我還像新娘。我一直安慰自己瑟慈,他們只是感情好桃移,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,458評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著葛碧,像睡著了一般借杰。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上进泼,一...
    開封第一講書人閱讀 49,185評論 1 284
  • 那天蔗衡,我揣著相機(jī)與錄音,去河邊找鬼乳绕。 笑死绞惦,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的洋措。 我是一名探鬼主播济蝉,決...
    沈念sama閱讀 38,451評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了堆生?” 一聲冷哼從身側(cè)響起专缠,我...
    開封第一講書人閱讀 37,112評論 0 261
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎淑仆,沒想到半個月后涝婉,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,609評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡蔗怠,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,083評論 2 325
  • 正文 我和宋清朗相戀三年墩弯,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片寞射。...
    茶點(diǎn)故事閱讀 38,163評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡渔工,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出桥温,到底是詐尸還是另有隱情引矩,我是刑警寧澤,帶...
    沈念sama閱讀 33,803評論 4 323
  • 正文 年R本政府宣布侵浸,位于F島的核電站旺韭,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏掏觉。R本人自食惡果不足惜区端,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,357評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望澳腹。 院中可真熱鬧织盼,春花似錦、人聲如沸酱塔。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,357評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽延旧。三九已至谋国,卻和暖如春槽地,著一層夾襖步出監(jiān)牢的瞬間阻逮,已是汗流浹背慨丐。 一陣腳步聲響...
    開封第一講書人閱讀 31,590評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人沉删。 一個月前我還...
    沈念sama閱讀 45,636評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像魔吐,于是被迫代替她去往敵國和親弯汰。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,925評論 2 344

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

  • 歷史 log4j可以當(dāng)之無愧地說是Java日志框架的元老窗宦,1999年發(fā)布首個版本赦颇,2012年發(fā)布最后一個版本二鳄,20...
    kelgon閱讀 10,133評論 3 53
  • 作為Java開發(fā)人員,對于日志記錄框架一定非常熟悉媒怯。而且?guī)缀踉谒袘?yīng)用里面订讼,一定會用到各種各樣的日志框架用來記錄程...
    意識流丶閱讀 13,906評論 0 13
  • 對于Java的日志框架,你也許會經(jīng)成劝看到這些名詞: Log4j欺殿、Log4j2 Logback Slf4j JCL ...
    NoahU閱讀 3,937評論 0 15
  • 前言 最近學(xué)習(xí)開java web服務(wù)器開發(fā),開始學(xué)習(xí)java鳖敷,處理業(yè)務(wù)邏輯脖苏,但對其中的日志比較好奇,之前沒怎么接觸...
    九風(fēng)萍舟閱讀 3,285評論 1 6
  • 在項(xiàng)目開發(fā)過程中定踱,我們可以通過 debug 查找問題棍潘。而在線上環(huán)境我們查找問題只能通過打印日志的方式查找問題。因此...
    Java架構(gòu)閱讀 3,459評論 2 41