成人AV在线无码|婷婷五月激情色,|伊人加勒比二三四区|国产一区激情都市|亚洲AV无码电影|日av韩av无码|天堂在线亚洲Av|无码一区二区影院|成人无码毛片AV|超碰在线看中文字幕

windows的logger在哪里保存 程序員怎樣做出優(yōu)秀的日志?

程序員怎樣做出優(yōu)秀的日志?謝邀!要做出優(yōu)秀的日志,必須要考慮以下幾個方面的事情:1、日志的級別一定要搞清楚ERRORERROR是最高級別錯誤,反映系統(tǒng)發(fā)生了非常嚴(yán)重的故障,無法自動恢復(fù)到正常態(tài)工作,需

程序員怎樣做出優(yōu)秀的日志?

謝邀!要做出優(yōu)秀的日志,必須要考慮以下幾個方面的事情:

1、日志的級別一定要搞清楚

ERROR

ERROR是最高級別錯誤,反映系統(tǒng)發(fā)生了非常嚴(yán)重的故障,無法自動恢復(fù)到正常態(tài)工作,需要人工介入處理。系統(tǒng)需要將錯誤相關(guān)痕跡以及錯誤細(xì)節(jié)記錄ERROR日志中,方便后續(xù)人工回溯解決。

WARN

WARN是低級別異常日志,反映系統(tǒng)在業(yè)務(wù)處理時觸發(fā)了異常流程,但系統(tǒng)可恢復(fù)到正常態(tài),下一次業(yè)務(wù)可以正常執(zhí)行。但WARN級別問題需要開發(fā)人員給予足夠關(guān)注,往往表示有參數(shù)校驗問題或者程序邏輯缺陷,當(dāng)功能邏輯走入異常邏輯時,應(yīng)該考慮記錄WARN日志。

INFO

INFO日志主要記錄系統(tǒng)關(guān)鍵信息,旨在保留系統(tǒng)正常工作期間關(guān)鍵運行指標(biāo),開發(fā)人員可以將初始化系統(tǒng)配置、業(yè)務(wù)狀態(tài)變化信息,或者用戶業(yè)務(wù)流程中的核心處理記錄到INFO日志中,方便日常運維工作以及錯誤回溯時上下文場景復(fù)現(xiàn)。

DEBUG

DEBUG日志是INFO日志的好幫手,開發(fā)人員可以將各類詳細(xì)信息記錄到DEBUG里,起到調(diào)試的作用,包括參數(shù)信息、調(diào)試細(xì)節(jié)信息、返回值信息等。其它等級不方便顯示的信息都可以通過DEBUG日志來記錄。

2、記錄日志的時機,一定要仔細(xì)考量

在排除故障的時候,該要出現(xiàn)的日志沒有,無用的日志一大堆,或者需要的信息分散在各個角落,特別是遇到緊急的在線bug時,有效的日志被大量無意義的日志信息淹沒,焦急且無奈地浪費大量精力查詢?nèi)罩尽D鞘裁词怯涗浫罩镜暮线m時機呢?

當(dāng)方法或者功能處理過程中產(chǎn)生不符合預(yù)期結(jié)果或者有框架報錯時可以考慮使用,常見問題處理方法包括:

“增加判斷處理邏輯,嘗試本地解決 拋出異常,交給上層邏輯解決 記錄日志,報警提醒 使用返回碼包裝錯誤做返回”

DEBUG級別。 系統(tǒng)初始化:系統(tǒng)或者服務(wù)的啟動參數(shù)。核心模塊或者組件初始化過程中往往依賴一些關(guān)鍵配置,根據(jù)參數(shù)不同會提供不一樣的服務(wù)。務(wù)必在這里記錄INFO日志,打印出參數(shù)以及啟動完成態(tài)服務(wù)表述。

編程語言提示異常:如今各類主流的編程語言都包括異常機制,業(yè)務(wù)相關(guān)的流行框架有完整的異常模塊。這類捕獲的異常是系統(tǒng)告知開發(fā)人員需要加以關(guān)注的,是質(zhì)量非常高的報錯。應(yīng)當(dāng)適當(dāng)記錄日志,根據(jù)實際結(jié)合業(yè)務(wù)的情況使用WARN或者ERROR級別。

業(yè)務(wù)流程預(yù)期不符:除開平臺以及編程語言異常之外,項目代碼中結(jié)果與期望不符時也是日志場景之一,簡單來說所有流程分支都可以加入考慮。取決于開發(fā)人員判斷能否容忍情形發(fā)生。常見的合適場景包括外部參數(shù)不正確,數(shù)據(jù)處理問題導(dǎo)致返回碼不在合理范圍內(nèi)等。

系統(tǒng)核心角色,組件關(guān)鍵動作:系統(tǒng)中核心角色觸發(fā)的業(yè)務(wù)動作是需要多加關(guān)注的,是衡量系統(tǒng)正常運行的重要指標(biāo)。建議記錄INFO級別日志,比如電商系統(tǒng)用戶從登錄到下單的整個流程;微服務(wù)各服務(wù)節(jié)點交互;核心數(shù)據(jù)表增刪改;核心組件運行等,如果日志頻度高或者打印量特別大,可以提煉關(guān)鍵點INFO記錄,其余酌情考慮

3、日志也會消耗性能,要牢記性能意識,不要隨意浪費資源

所有的日志工具,在日志輸出時總會對性能產(chǎn)生或多或少的影響,為了將影響降低到最低,有以下幾個準(zhǔn)則需要遵守:

根本原則:有必要才記錄日志,頻繁過量日志對性能是有損耗的,并且這種風(fēng)險不常在系統(tǒng)正常時出現(xiàn),系統(tǒng)出現(xiàn)問題時大量ERROR、INFO等問題相關(guān)日志有可能產(chǎn)生連鎖反應(yīng),造成嚴(yán)重的后果。將關(guān)鍵信息保存到日志,同時考慮極端場景日志爆發(fā)。

Logger獲?。焊鶕?jù)系統(tǒng)使用的日志框架組合,確定正確的實例獲取。在log4j的早期版本,一般要求使用static,而在高版本以及后來的slf4j等一些框架封裝中,該問題已經(jīng)得到優(yōu)化,獲?。▌?chuàng)建)logger實例的成本已經(jīng)很低。但對于多例,尤其是需要頻繁創(chuàng)建的class,推薦添加static前綴。

輸出等級校驗:在log4j 1.x版本,對于可以預(yù)見的會頻繁產(chǎn)生的日志輸出,先判斷一下((),對于性能有很大提升,在其它外觀框架或者log4j 2.x中已經(jīng)自動實現(xiàn)。 輸出格式:禁止使用字符串拼接,使用參數(shù)。 樣式配置:布局配置輸出的信息也會影響到性能,需要根據(jù)logger的具體使用場景來選擇輸出合適信息。

核心都是減少日志量 ,前兩點偏向設(shè)計,后四點偏向日志框架及習(xí)慣,并且這四點目前一些框架組合已經(jīng)能幫開發(fā)人員減少不少工作,比如log4j2.x在實例獲取,輸出等級判斷都有優(yōu)化。

source類是什么類?

Source組件是專門用來收集數(shù)據(jù)的,可以處理各種類型、各種格式的日志數(shù)據(jù),包括avro、thrift、exec、jms、spooling directory、netcat、sequence generator、syslog、http、legacy

(2)Channel組件對采集到的數(shù)據(jù)進(jìn)行緩存,可以存放在Memory或File中。

(3)Sink組件是用于把數(shù)據(jù)發(fā)送到目的地的組件,目的地包括Hdfs、Logger、avro、thrift、ipc、file、Hbase、solr、自定義。