【談】程序中日志分級(jí)打印

大黃:誰提的代碼隐砸,怎么日志全是logger.info圃庭,異常也是?(一通找svn版本最終發(fā)現(xiàn)是小志)
大黃:小志歼冰,為啥程序中日志打印不分級(jí)別呢靡狞?
小志:我分了的,都用info
大黃:那什么是日志分級(jí)呢隔嫡?(無奈)
小志:……

網(wǎng)絡(luò)提供
01

什么是日志分級(jí)

現(xiàn)在的程序工程都比較龐大甸怕,為了開發(fā)調(diào)試和生產(chǎn)問題跟蹤排查甘穿,通常都會(huì)加入專業(yè)的日志框架,負(fù)責(zé)日志的打印梢杭。

Java工程常用的日志框架有l(wèi)og4j,log4j2,logback等温兼。在這些日志框架中會(huì)提供日志級(jí)別,以響應(yīng)不同的程序運(yùn)行事件武契,記錄日志募判。其中日志記錄器(Logger)是日志處理的核心組件。 org.apache.log4j.Level類提供以下級(jí)別咒唆,但也可以通過Level類的子類自定義級(jí)別

Level 描述
ALL 各級(jí)包括自定義級(jí)別
DEBUG 指定細(xì)粒度信息事件是最有用的應(yīng)用程序調(diào)試
ERROR 錯(cuò)誤事件可能仍然允許應(yīng)用程序繼續(xù)運(yùn)行
FATAL 指定非常嚴(yán)重的錯(cuò)誤事件届垫,這可能導(dǎo)致應(yīng)用程序中止
INFO 指定能夠突出在粗粒度級(jí)別的應(yīng)用程序運(yùn)行情況的信息的消息
OFF 這是最高等級(jí),為了關(guān)閉日志記錄
TRACE 指定細(xì)粒度比DEBUG更低的信息事件
WARN 指定具有潛在危害的情況

log4j具有5種正常級(jí)別(Level)全释。

日志記錄器(Logger)的可用級(jí)別Level (不包括自定義級(jí)別 Level)
static Level DEBUG
DEBUG Level指出細(xì)粒度信息事件對(duì)調(diào)試應(yīng)用程序是非常有幫助的装处。
static Level INFO
INFO level表明 消息在粗粒度級(jí)別上突出強(qiáng)調(diào)應(yīng)用程序的運(yùn)行過程。
static Level WARN
WARN level表明會(huì)出現(xiàn)潛在錯(cuò)誤的情形浸船。
static Level ERROR
ERROR level指出雖然發(fā)生錯(cuò)誤事件妄迁,但仍然不影響系統(tǒng)的繼續(xù)運(yùn)行。
static Level FATAL
FATAL level指出每個(gè)嚴(yán)重的錯(cuò)誤事件將會(huì)導(dǎo)致應(yīng)用程序的退出糟袁。

另外判族,還有兩個(gè)可用的特別的日志記錄級(jí)別:

static Level ALL
ALL Level是最低等級(jí)的躺盛,用于打開所有日志記錄项戴。
static Level OFF
OFF Level是最高等級(jí)的,用于關(guān)閉所有日志記錄槽惫。
日志記錄器(Logger)的行為是分等級(jí)的周叮。

02

為什么要日志分級(jí)

  • 可以區(qū)分不同場(chǎng)景下日志打印,如測(cè)試環(huán)境日志打印級(jí)別為all打印全量日志界斜,生產(chǎn)環(huán)境可以調(diào)整為info級(jí)別
  • 可以根據(jù)日志級(jí)別過濾日志仿耽。問題排查可以直接搜索error級(jí)別日志。error方法可以打印錯(cuò)誤的堆棧信息各薇。
  • 規(guī)范編程项贺,降低系統(tǒng)維護(hù)和溝通成本。正常情況下info級(jí)別的日志是提示信息峭判,如果錯(cuò)誤級(jí)別也打info級(jí)別开缎。很容易忽略問題,對(duì)團(tuán)隊(duì)其它成員造成誤解林螃,排查問題費(fèi)時(shí)費(fèi)力奕删。所以要規(guī)范編程。
03

怎么合理安排日志打印

  • try-catch中要拋出error級(jí)別的疗认,信息要描述清楚完残。例:logger.error("錯(cuò)誤",e)
  • 關(guān)鍵函數(shù)入?yún)⒑徒Y(jié)果要打印info級(jí)別日志伏钠。例:轉(zhuǎn)賬函數(shù),要在轉(zhuǎn)賬之前和轉(zhuǎn)賬后的金額谨设,關(guān)鍵參數(shù)打印全部熟掂,方便跟蹤。
  • 忌日志打印過多扎拣,日志打印本身也消耗資源打掘。無用的日志不要打印,不要重復(fù)打印與交易無關(guān)的日志信息鹏秋。
  • 日志遵循寧多勿少尊蚁,方便定位生產(chǎn)問題。防止交易編程黑盒操作侣夷。所以該打的日志一定要打横朋。
  • 生產(chǎn)環(huán)境debug日志會(huì)關(guān)掉,所以 關(guān)鍵信息不要用debug級(jí)別打印百拓。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末琴锭,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子衙传,更是在濱河造成了極大的恐慌决帖,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,548評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蓖捶,死亡現(xiàn)場(chǎng)離奇詭異地回,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)俊鱼,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,497評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門刻像,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人并闲,你說我怎么就攤上這事细睡。” “怎么了帝火?”我有些...
    開封第一講書人閱讀 167,990評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵溜徙,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我犀填,道長(zhǎng)蠢壹,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,618評(píng)論 1 296
  • 正文 為了忘掉前任宏浩,我火速辦了婚禮知残,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己求妹,他們只是感情好乏盐,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,618評(píng)論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著制恍,像睡著了一般父能。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上净神,一...
    開封第一講書人閱讀 52,246評(píng)論 1 308
  • 那天何吝,我揣著相機(jī)與錄音,去河邊找鬼鹃唯。 笑死爱榕,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的坡慌。 我是一名探鬼主播黔酥,決...
    沈念sama閱讀 40,819評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼洪橘!你這毒婦竟也來了跪者?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,725評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤熄求,失蹤者是張志新(化名)和其女友劉穎渣玲,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體弟晚,經(jīng)...
    沈念sama閱讀 46,268評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡忘衍,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,356評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了指巡。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片淑履。...
    茶點(diǎn)故事閱讀 40,488評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡隶垮,死狀恐怖藻雪,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情狸吞,我是刑警寧澤勉耀,帶...
    沈念sama閱讀 36,181評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站蹋偏,受9級(jí)特大地震影響便斥,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜威始,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,862評(píng)論 3 333
  • 文/蒙蒙 一枢纠、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧黎棠,春花似錦晋渺、人聲如沸镰绎。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,331評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽畴栖。三九已至,卻和暖如春八千,著一層夾襖步出監(jiān)牢的瞬間吗讶,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,445評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工恋捆, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留照皆,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,897評(píng)論 3 376
  • 正文 我出身青樓沸停,卻偏偏與公主長(zhǎng)得像纵寝,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子星立,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,500評(píng)論 2 359

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

  • 在應(yīng)用程序中添加日志記錄總的來說基于三個(gè)目的:監(jiān)視代碼中變量的變化情況爽茴,周期性的記錄到文件中供其他應(yīng)用進(jìn)行統(tǒng)計(jì)分析...
    時(shí)待吾閱讀 4,991評(píng)論 0 6
  • 在應(yīng)用程序中添加日志記錄總的來說基于三個(gè)目的:監(jiān)視代碼中變量的變化情況,周期性的記錄到文件中供其他應(yīng)用進(jìn)行統(tǒng)計(jì)分析...
    時(shí)待吾閱讀 5,055評(píng)論 1 13
  • from:https://www.cnblogs.com/ITtangtang/p/3926665.html一绰垂、L...
    enshunyan閱讀 3,294評(píng)論 0 0
  • 一室奏、Log4j簡(jiǎn)介 Log4j有三個(gè)主要的組件:Loggers(記錄器),Appenders (輸出源)和Layo...
    默默守護(hù)閱讀 1,913評(píng)論 2 8
  • M把自己扔到床上劲装,臉埋到被子里胧沫,“終于安靜了”他想,慢慢地閉上眼睛占业,深呼一口氣绒怨。近來總是感到疲憊,難道是工作...
    tinymustard閱讀 201評(píng)論 0 0