業(yè)務系統(tǒng)合理的日志文件配置方案

接觸過一定數(shù)量的業(yè)務系統(tǒng),大部分系統(tǒng)線上維護都是要你命3000获三,越老越要命旁蔼。本文僅從軟件工程角度給出一個合理的建議。

常見的讓大家詬病的三個問題:

1. 日志文件太過簡單疙教,error一個日志棺聊,info一個日志,打開文件會發(fā)現(xiàn)一堆與業(yè)務無關的中間件日志贞谓,和組件心跳日志

2. 異常信息打印不規(guī)范限佩,一個異常被多次拋出,多次打印同一條信息的異常棧裸弦,有效信息被大量的冗余日志沖散祟同,不利于線上問題排查,這不屬于本文章要討論的問題理疙,這是代碼規(guī)范晕城,要嚴格控制異常棧的打印。

3. logger 是有繼承關系的=严汀W┣辍!你生的孩子要管你爸叫爺爺赃梧,但是他可以選擇不認祖宗滤蝠。有些開發(fā)者搞不清楚logger繼承關系,導致同一日志在不同文件下多次輸出槽奕,維護系統(tǒng)的人看著累几睛,日志也累啊,它見誰都要認祖歸宗粤攒,其實搞清楚繼承關系可以讓我們日志輸出孑然一身輕所森。

注:一些聰明但是神經大條的人確實不會對這些問題敏感囱持,反正再亂的線團他們都能找到線頭,這正促使了一堆牛人留下了一堆足以讓接盤的新人頭大的維護工作焕济。但是顯然業(yè)務系統(tǒng)中遺留這樣完全不必要的問題纷妆,不利于業(yè)務系統(tǒng)的工作流水線標準化,造成新人工作交接上崗到熟練的周期不必要延長晴弃。

最近工作中再一次涉及到了日志整理的問題掩幢,雖然簡單,但很少有人總結并留下思路上鞠,特錄此文际邻,希望大家對自己的接班人都溫柔一些,干活的時候一時興起芍阎,亂七八糟的操作不要太猛世曾。

log4j 和 logback 區(qū)別是有的,本文僅以log4j 為示例谴咸,logback的配置不如log4j 靈活

log4j 日志配置的兩個關鍵要素:

1. logger轮听。如果把每一個類比作自然人,每一個自定義名稱的logger比作法人岭佳,logger就可以是泛指的人血巍,即logger 既可以以一個完整類名作為標識,也可以以開發(fā)者自定義的名稱作為標識珊随。要做精確控制的時候只要按照完整類名定義logger即可述寡。

2. appender 。日志輸出到不同的文件玫恳。建議的做法:

系統(tǒng)所有的error日志輸出到error.log , 對輸出到這個文件的日志嚴格控制

系統(tǒng)其他級別的日志統(tǒng)一按照業(yè)務模塊辨赐,組件角色其中一個維度(注意是其中一個,按照自己的需求京办,不要多維度組合)將非error日志區(qū)分文件輸出掀序。

log4j的輸出日志級別的四個關鍵屬性:

<logger name="*****" additivity="false">

? ? <level value="INFO"/>

</logger>


1. level標簽里值是設定本logger的最低級別,即該類日志可以輸出的最低級別的日志記錄

2. additivity:表示Logger不會在父Logger的appender里輸出惭婿,默認為true不恭。配置additivity="false", 就能確保該日志記錄只會在一個文件中輸出财饥,當然根據(jù)開發(fā)者對業(yè)務系統(tǒng)的掌握程度换吧,這個字段應該靈活設置,讓日志更簡潔钥星,分類更清晰沾瓦。

<appender name="console" class="*******">

? ? <param name="file" value="${log4j_dir}/***/monitor-error.log" />

? ? ....

? ? <param name="threshold" value="info" />

? ? <filter class="org.apache.log4j.varia.LevelRangeFilter">

? ? ? ? <param name="LevelMax" value="error"/>

? ? ? ? <param name="LevelMin" value="info"/>

? </filter>

</appender>

3. threshold 屬性, 在appender指定日志輸出的最低級別,默認為DEBUG贯莺。

4. filter 子域风喇, 這就是一個可以展開的內容,具體參見https://www.cnblogs.com/yulinlewis/p/10152875.html

只要明確上面的這些概念缕探,就可以讓那個我們的系統(tǒng)日志變得更加清晰明了魂莫,采用本文推薦的日志設計一定會減輕日常的系統(tǒng)維護工作。從而減輕不必要的腦力負擔爹耗,也讓應用維護能夠有一個相對標準的流程耙考。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市潭兽,隨后出現(xiàn)的幾起案子倦始,更是在濱河造成了極大的恐慌,老刑警劉巖讼溺,帶你破解...
    沈念sama閱讀 216,919評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件楣号,死亡現(xiàn)場離奇詭異,居然都是意外死亡怒坯,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,567評論 3 392
  • 文/潘曉璐 我一進店門藻懒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來剔猿,“玉大人,你說我怎么就攤上這事嬉荆」榫矗” “怎么了?”我有些...
    開封第一講書人閱讀 163,316評論 0 353
  • 文/不壞的土叔 我叫張陵鄙早,是天一觀的道長汪茧。 經常有香客問我,道長限番,這世上最難降的妖魔是什么舱污? 我笑而不...
    開封第一講書人閱讀 58,294評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮弥虐,結果婚禮上扩灯,老公的妹妹穿的比我還像新娘。我一直安慰自己霜瘪,他們只是感情好珠插,可當我...
    茶點故事閱讀 67,318評論 6 390
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著颖对,像睡著了一般捻撑。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,245評論 1 299
  • 那天顾患,我揣著相機與錄音番捂,去河邊找鬼。 笑死描验,一個胖子當著我的面吹牛白嘁,可吹牛的內容都是我干的。 我是一名探鬼主播膘流,決...
    沈念sama閱讀 40,120評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼絮缅,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了呼股?” 一聲冷哼從身側響起耕魄,我...
    開封第一講書人閱讀 38,964評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎彭谁,沒想到半個月后吸奴,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 45,376評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡缠局,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,592評論 2 333
  • 正文 我和宋清朗相戀三年则奥,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片狭园。...
    茶點故事閱讀 39,764評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡读处,死狀恐怖,靈堂內的尸體忽然破棺而出唱矛,到底是詐尸還是另有隱情罚舱,我是刑警寧澤,帶...
    沈念sama閱讀 35,460評論 5 344
  • 正文 年R本政府宣布绎谦,位于F島的核電站管闷,受9級特大地震影響,放射性物質發(fā)生泄漏窃肠。R本人自食惡果不足惜包个,卻給世界環(huán)境...
    茶點故事閱讀 41,070評論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望铭拧。 院中可真熱鬧赃蛛,春花似錦、人聲如沸搀菩。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,697評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽肪跋。三九已至歧蒋,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背谜洽。 一陣腳步聲響...
    開封第一講書人閱讀 32,846評論 1 269
  • 我被黑心中介騙來泰國打工萝映, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人阐虚。 一個月前我還...
    沈念sama閱讀 47,819評論 2 370
  • 正文 我出身青樓序臂,卻偏偏與公主長得像,于是被迫代替她去往敵國和親实束。 傳聞我的和親對象是個殘疾皇子奥秆,可洞房花燭夜當晚...
    茶點故事閱讀 44,665評論 2 354

推薦閱讀更多精彩內容

  • 在應用程序中添加日志記錄總的來說基于三個目的:監(jiān)視代碼中變量的變化情況,周期性的記錄到文件中供其他應用進行統(tǒng)計分析...
    時待吾閱讀 4,985評論 0 6
  • 在應用程序中添加日志記錄總的來說基于三個目的:監(jiān)視代碼中變量的變化情況咸灿,周期性的記錄到文件中供其他應用進行統(tǒng)計分析...
    時待吾閱讀 5,041評論 1 13
  • from:https://www.cnblogs.com/ITtangtang/p/3926665.html一构订、L...
    enshunyan閱讀 3,290評論 0 0
  • 一、Log4j簡介 Log4j有三個主要的組件:Loggers(記錄器)避矢,Appenders (輸出源)和Layo...
    默默守護閱讀 1,908評論 2 8
  • 多次被打壓悼瘾,被人身攻擊,多想停止這樣痛苦的惡夢下去审胸,但是你們就一廂情愿的認為這就是我的生活就想要開始這一切亥宿。因為你...
    失控少女閱讀 185評論 0 0