日志規(guī)范實踐

問題

這兩天在整理現(xiàn)有模塊的日志格式規(guī)范畜挨,以便于自己團(tuán)隊和其它團(tuán)隊更好的分析目前的產(chǎn)品除盏】羁看了下味混,遺留的問題還真不少,問題主要集中在以下幾點:

日志級別不正確

不是請求粒度的日志打成了NOTICE诫惭,用于排查的日志打成了WARNING翁锡、甚至打成了FATAL。這對于線上模塊監(jiān)控很不利夕土,一方面很難從眾多的WARNINGFATAL日志中找到有價值的信息馆衔,另一方面這些日志多了,難免讓人產(chǎn)生“狼來了”的麻痹心理怨绣。

字段命名不統(tǒng)一

同樣一個參數(shù)角溃,比如說是請求ID,在不同的請求日志中篮撑,有logid减细、log_idlogId各種不同風(fēng)格的寫法赢笨,有的參數(shù)是用[]括起來的未蝌,有的則沒有。這些問題會給日志解析程序帶來很大的負(fù)擔(dān)茧妒。

字段含義不一致

不同請求日志中的參數(shù)A萧吠,在一種請求中表示一種含義(比如觸發(fā)出的商品數(shù)),在其它請求中則表示另一種含義(比如一頁展現(xiàn)的商品數(shù))桐筏。

日志被公共Lib污染

自己的模塊依賴了其它公共lib纸型,但是公共lib中的日志級別比較隨意,結(jié)果污染了自身模塊日志。

日志信息不足

許多NOTICE日志只打印出了給上游的返回數(shù)據(jù)狰腌,請求數(shù)據(jù)卻不全除破。一些WARNING日志只能看出只在代碼的哪一行出了問題,請求參數(shù)是什么癌别、甚至請求ID皂岔,都沒有。線上出現(xiàn)了問題展姐,很難根據(jù)這條日志找到線索躁垛。

規(guī)范

因此,我們需要對現(xiàn)在的日志格式進(jìn)行專項整治圾笨,總結(jié)出一些合理的教馆、改動盡量小的日志規(guī)范。這兩天和同事討論了下擂达,整理出了一些:

統(tǒng)一字段命名

對于不同請求中的同一含義的字段土铺,只能有一個名字。

統(tǒng)一字段風(fēng)格

字段一律使用xxx_yyy的下劃線命名風(fēng)格板鬓。

統(tǒng)一日志層級風(fēng)格

日志中的信息均通過k=v形式表達(dá)悲敷,kv之間以,分割,表示第一層級俭令;如果v還有第二層級后德,則用_分割;第三層級用|分割抄腔。ex: k1=v111|v112_v21_v22,k2=v2

統(tǒng)一字段順序

統(tǒng)一使用請求ID/服務(wù)名/請求參數(shù)/響應(yīng)數(shù)據(jù)/響應(yīng)時間作為日志字段順序瓢湃。(當(dāng)然,一般公司都有自己的日志工具赫蛇,會將日志級別绵患、時間、線程ID悟耘、函數(shù)落蝙、行號這些打印在最前面。)

日志必須有請求ID

請求粒度的日志中暂幼,必須包含請求ID掘殴;工具類的lib中,對于功能較小的函數(shù)粟誓,無需打日志奏寨;功能點較多的函數(shù),需將請求ID通過參數(shù)傳遞進(jìn)去鹰服。

只有請求粒度的日志病瞳,才能是NOTICE級別

其它公共lib中的代碼揽咕,需要打到單獨的日志文件中,不和本身模塊的日志混淆套菜。


日志實在是太重要了亲善,一方面反映了用戶的行為,另一方面也反映了模塊的指標(biāo)(召回率逗柴、響應(yīng)時間等)蛹头,怎么規(guī)范它估計都不為過。我們整理的這些規(guī)范也智能算是個迷你版本戏溺。

其實渣蜗,我們制定的這些規(guī)范(以及其它規(guī)范),并沒有誰一開始就能全部想到旷祸,正如TA一開始也想不到會有再上面的問題一樣耕拷。每個人都很自信的認(rèn)為其他人會和TA是一樣的代碼或者日志風(fēng)格,如果所有關(guān)于打印日志的代碼托享,都是由一個人來寫的話骚烧,風(fēng)格想必都是統(tǒng)一的,因為TA知道過去的代碼是什么樣的闰围,為什么需要改成現(xiàn)在這樣赃绊,哪些字段是后來因為什么原因而加上的。如果TA另外也負(fù)責(zé)對日志進(jìn)行解析和統(tǒng)計的話羡榴,那么日志風(fēng)格就會完全統(tǒng)一了碧查。 :P

規(guī)范的制定,從某種意義上講炕矮,也是一種被逼的結(jié)果,因為總會有人最終無法忍受由于種種問題而導(dǎo)致的心智負(fù)擔(dān)者冤,然后說道肤视,“受不了了,我們還是搞個規(guī)范吧涉枫!”

-- EOF --

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末邢滑,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子愿汰,更是在濱河造成了極大的恐慌困后,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,682評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件衬廷,死亡現(xiàn)場離奇詭異摇予,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)吗跋,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,277評論 3 395
  • 文/潘曉璐 我一進(jìn)店門侧戴,熙熙樓的掌柜王于貴愁眉苦臉地迎上來宁昭,“玉大人,你說我怎么就攤上這事酗宋』蹋” “怎么了?”我有些...
    開封第一講書人閱讀 165,083評論 0 355
  • 文/不壞的土叔 我叫張陵蜕猫,是天一觀的道長寂曹。 經(jīng)常有香客問我,道長回右,這世上最難降的妖魔是什么隆圆? 我笑而不...
    開封第一講書人閱讀 58,763評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮楣黍,結(jié)果婚禮上匾灶,老公的妹妹穿的比我還像新娘。我一直安慰自己租漂,他們只是感情好阶女,可當(dāng)我...
    茶點故事閱讀 67,785評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著哩治,像睡著了一般秃踩。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上业筏,一...
    開封第一講書人閱讀 51,624評論 1 305
  • 那天憔杨,我揣著相機(jī)與錄音,去河邊找鬼蒜胖。 笑死消别,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的台谢。 我是一名探鬼主播寻狂,決...
    沈念sama閱讀 40,358評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼朋沮!你這毒婦竟也來了蛇券?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,261評論 0 276
  • 序言:老撾萬榮一對情侶失蹤樊拓,失蹤者是張志新(化名)和其女友劉穎纠亚,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體筋夏,經(jīng)...
    沈念sama閱讀 45,722評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡蒂胞,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了条篷。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片啤誊。...
    茶點故事閱讀 40,030評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡岳瞭,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蚊锹,到底是詐尸還是另有隱情瞳筏,我是刑警寧澤,帶...
    沈念sama閱讀 35,737評論 5 346
  • 正文 年R本政府宣布牡昆,位于F島的核電站姚炕,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏丢烘。R本人自食惡果不足惜柱宦,卻給世界環(huán)境...
    茶點故事閱讀 41,360評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望播瞳。 院中可真熱鬧掸刊,春花似錦、人聲如沸赢乓。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,941評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽牌芋。三九已至蚓炬,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間躺屁,已是汗流浹背肯夏。 一陣腳步聲響...
    開封第一講書人閱讀 33,057評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留犀暑,地道東北人驯击。 一個月前我還...
    沈念sama閱讀 48,237評論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像耐亏,于是被迫代替她去往敵國和親徊都。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,976評論 2 355

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

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理苹熏,服務(wù)發(fā)現(xiàn)碟贾,斷路器币喧,智...
    卡卡羅2017閱讀 134,659評論 18 139
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,161評論 25 707
  • 我小時候很喜歡玩火轨域。看著蠟燭上的火在跳躍杀餐。家里曾經(jīng)有一面很長的鏡子干发,我把鏡子平放在兩個椅子上,然后再把蠟燭放上去史翘。...
    阿夏起床啦閱讀 200評論 1 0