服務(wù)器的日志系統(tǒng)

日志基礎(chǔ)

首先我們要明確的是所謂的服務(wù)器日志系統(tǒng)到底是幫助我們做什么的
其實這也沒有什么好說的, 你會告訴我日志無非就是幫助我們快速定位服務(wù)器發(fā)生的錯誤或者問題, 當(dāng)然這也是日志眾多目的中最重要的一種
簡單來說 就是我們到底應(yīng)該如何寫出 干凈有用的日志

一些應(yīng)該記錄日志的地方

  • 調(diào)用外部接口前后
  • 系統(tǒng)狀態(tài)發(fā)生變化的時候
  • 發(fā)生不正常錯誤的時候/業(yè)務(wù)異常
  • 系統(tǒng)的入口與出口
  • 非預(yù)期執(zhí)行
  • 很少出現(xiàn)的 else

一些原則

  • 輸出Log時避免自己出錯
  • 過多的日志會拖慢系統(tǒng)
  • 日志至少應(yīng)該包含描述和數(shù)據(jù)
  • 重要的日志應(yīng)該添加特殊的可搜索字符
  • 不要輸出密碼打毛、個人信息、信用卡信息等敏感數(shù)據(jù)
  • 輸出重要方法的參數(shù)和返回值
  • 輸出重要方法的開始和結(jié)束(異常時是否輸出結(jié)束日志籽前?)
  • 如果和外部系統(tǒng)鏈接裙顽,需要輸出INPUT和OUTPUT
  • 合理輸出異常信息(不要主動輸出異常付燥,合理通過框架、共通代碼輸出愈犹;避免異常被輸出多次)
  • 考慮數(shù)據(jù)的輸出格式键科,最好輸出多種格式利用人看或者工具分析
  • 合理輸出二進(jìn)制文件信息(name、size)
  • 不要在循環(huán)中記錄日志

日志格式

一般分為 鍵值對 和 json 兩種 當(dāng)然因項目而異

apache 引用
192.168.56.6 - - [24/Sep/2012:11:11:11 +0900] "GET /info.php HTTP/1.0" 200 9 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:10.0.7) Gecko/20120829 Firefox/10.0.7"
ngnix 引用
192.168.21.198 - - [06/Mar/2015:18:19:06 +0900] "GET /index.php HTTP/1.1" 200 87243 "-" "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Maxthon/4.4.3.4000 Chrome/30.0.1599.101 Safari/537.36"

日志級別

日志級別根據(jù)不同的日志系統(tǒng),級別也不同,大體上分為5種
借用其他博客看到的總結(jié) 每種不同級別的錯誤大概可以這么來說明

  • ERROR:系統(tǒng)發(fā)生了嚴(yán)重的錯誤, 必須馬上進(jìn)行處理, 否則系統(tǒng)將無法繼續(xù)運行. 比如, NPE, 數(shù)據(jù)庫不可用等.
  • WARN:系統(tǒng)能繼續(xù)運行, 但是必須引起關(guān)注. 對于存在的問題一般可以分為兩類: 一種系統(tǒng)存在明顯的問題(比如, 數(shù)據(jù)不可用), 另一種就是系統(tǒng)存在潛在的問題, 需要引起注意或者給出一些建議(比如, 系統(tǒng)運行在安全模式或者訪問當(dāng)前系統(tǒng)的賬號存在安全隱患). 總之就是系統(tǒng)仍然可用, 但是最好進(jìn)行檢查和調(diào)整.
  • INFO:重要的業(yè)務(wù)邏輯處理完成. 在理想情況下, INFO的日志信息要能讓高級用戶和系統(tǒng)管理員理解, 并從日志信息中能知道系統(tǒng)當(dāng)前的運行狀態(tài). 比如對于一個機(jī)票預(yù)訂系統(tǒng)來說, 當(dāng)一個用戶完成一個機(jī)票預(yù)訂操作之后, 提醒應(yīng)該給出"誰預(yù)訂了從A到B的機(jī)票". 另一個需要輸出INFO信息的地方就是一個系統(tǒng)操作引起系統(tǒng)的狀態(tài)發(fā)生了重大變化(比如數(shù)據(jù)庫更新, 過多的系統(tǒng)請求).
  • DEBUG:主要給開發(fā)人員看, 下面會進(jìn)一步談到.
  • TRACE: 系統(tǒng)詳細(xì)信息, 主要給開發(fā)人員用, 一般來說, 如果是線上系統(tǒng)的話, 可以認(rèn)為是臨時輸出, 而且隨時可以通過開關(guān)將其關(guān)閉. 有時候我們很難將DEBUG和TRACE區(qū)分開, 一般情況下, 如果是一個已經(jīng)開發(fā)測試完成的系統(tǒng), 再往系統(tǒng)中添加日志輸出, 那么應(yīng)該設(shè)為TRACE級別.

日志系統(tǒng)

好的日志系統(tǒng)有很多 有很多現(xiàn)成的解決方案
一個好的日志系統(tǒng) 不僅包括日志系統(tǒng)的基礎(chǔ)功能(快速的記錄收集日志,按不同級別輸出日志,性能高) 還應(yīng)該能夠快速的分析日志(分析/模式匹配/關(guān)聯(lián)分析) 以及最后的監(jiān)控和報警功能
日志系統(tǒng)大概分三類:集中日志系統(tǒng)/分布式日志系統(tǒng)/開源日志系統(tǒng)

分布式日志系統(tǒng)

分布式日志 一個 PPT

開源日志

開源日志系統(tǒng)比較

Scribe

facebook 的開源日志系統(tǒng),可以存分布式文件系統(tǒng),也可以存數(shù)據(jù)庫
比較大的優(yōu)勢是容錯性好,數(shù)據(jù)庫掛了可以存儲在本地
是一個thrift client 簡介 初窺

ChukWa

Yahoo 開發(fā)的 Hadoop 的日志分析系統(tǒng)

Flume

日志收集系統(tǒng)

Kafka

Linkin 的開源消息系統(tǒng)

kids:知乎日志系統(tǒng)

kids 想做出什么樣的東西

  • 分布式收集
  • 集中存儲
  • 實時訂閱
  • 不丟(或者盡量不丟)
  • 對應(yīng)用性能影響盡量小
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末漩怎,一起剝皮案震驚了整個濱河市勋颖,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌勋锤,老刑警劉巖饭玲,帶你破解...
    沈念sama閱讀 217,542評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異叁执,居然都是意外死亡茄厘,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評論 3 394
  • 文/潘曉璐 我一進(jìn)店門谈宛,熙熙樓的掌柜王于貴愁眉苦臉地迎上來次哈,“玉大人,你說我怎么就攤上這事吆录∫ぶ停” “怎么了?”我有些...
    開封第一講書人閱讀 163,912評論 0 354
  • 文/不壞的土叔 我叫張陵恢筝,是天一觀的道長哀卫。 經(jīng)常有香客問我,道長撬槽,這世上最難降的妖魔是什么此改? 我笑而不...
    開封第一講書人閱讀 58,449評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮恢氯,結(jié)果婚禮上带斑,老公的妹妹穿的比我還像新娘。我一直安慰自己勋拟,他們只是感情好勋磕,可當(dāng)我...
    茶點故事閱讀 67,500評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著敢靡,像睡著了一般挂滓。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上啸胧,一...
    開封第一講書人閱讀 51,370評論 1 302
  • 那天赶站,我揣著相機(jī)與錄音幔虏,去河邊找鬼。 笑死贝椿,一個胖子當(dāng)著我的面吹牛想括,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播烙博,決...
    沈念sama閱讀 40,193評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼瑟蜈,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了渣窜?” 一聲冷哼從身側(cè)響起铺根,我...
    開封第一講書人閱讀 39,074評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎乔宿,沒想到半個月后位迂,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,505評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡详瑞,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,722評論 3 335
  • 正文 我和宋清朗相戀三年掂林,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片坝橡。...
    茶點故事閱讀 39,841評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡党饮,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出驳庭,到底是詐尸還是另有隱情,我是刑警寧澤氯窍,帶...
    沈念sama閱讀 35,569評論 5 345
  • 正文 年R本政府宣布饲常,位于F島的核電站,受9級特大地震影響狼讨,放射性物質(zhì)發(fā)生泄漏贝淤。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,168評論 3 328
  • 文/蒙蒙 一政供、第九天 我趴在偏房一處隱蔽的房頂上張望播聪。 院中可真熱鬧,春花似錦布隔、人聲如沸离陶。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽招刨。三九已至,卻和暖如春哀军,著一層夾襖步出監(jiān)牢的瞬間沉眶,已是汗流浹背打却。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留谎倔,地道東北人柳击。 一個月前我還...
    沈念sama閱讀 47,962評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像片习,于是被迫代替她去往敵國和親捌肴。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,781評論 2 354

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