真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

java日志怎么理解

這篇文章主要介紹“java日志怎么理解”,在日常操作中,相信很多人在java日志怎么理解問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”java日志怎么理解”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

創(chuàng)新互聯(lián)建站服務項目包括英山網(wǎng)站建設(shè)、英山網(wǎng)站制作、英山網(wǎng)頁制作以及英山網(wǎng)絡營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,英山網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務的客戶以成都為中心已經(jīng)輻射到英山省份的部分城市,未來相信會繼續(xù)擴大服務區(qū)域并繼續(xù)獲得客戶的支持與信任!

重要性

“無日志,不運維”。重要指數(shù):最高級。

具備的特性

能快速、精準定位問題,日志要能顯示出錯誤的原因。這句話非常重要,這是日志打印的指導思想。

分類

分類很重要,不同的功能,不同的業(yè)務需要不同的日志。分類越詳細,越便于問題的定位。

日志的類型

從打印的日志類型進行劃分,可以分為:控制臺日志、文件日志、數(shù)據(jù)庫日志、kafka+elk日志。這些是我目前接觸過的。

控制臺日志:用于簡單代碼的測試

文件日志、數(shù)據(jù)庫日志:我是不推薦使用的,已經(jīng)out了

kafka+elk日志:我目前接觸最好的日志

@timestamp:是日志打印的時間

level:是日志的級別

loggerName:是創(chuàng)建logger時,傳的class參數(shù)

message:是打印的日志

projectMarker:是我添加的,用于區(qū)分項目和環(huán)境的。通過本截圖可以看出,此條日志是seal項目的正式環(huán)境日志。如果是“seal.test”表示是seal的測試環(huán)境。此功能只有我開發(fā)的框架“聚寶盆”才有。

source.class:是打印日志的類的全名稱

source.line:是打印日志在類中的行號

source.method:是打印日志的方法名

級別

日志輸出的優(yōu)先級: debug < info < warn < error < fatal,info、warn、error是必須用到的。

info:正常信息的打印,為了方便排錯、調(diào)試。

warn:可以忽略的錯誤。比如密碼錯誤、session過期等。

error:不允許的錯誤。此錯誤會導致正常業(yè)務的進行。

層級

個人認為日志應該分為框架層級、業(yè)務層級、插件層級幾個方面。

框架層級:項目使用的框架打印的日志。這類日志是為了從底層排查問題使用的(如果業(yè)務層不能排查)。一般是架構(gòu)師搭建的。此類層級的日志非常重要,因為框架級別的日志具有普遍性、通用性等特點,框架打印了日志,業(yè)務層就不需要在寫日志了,減少了業(yè)務開發(fā)的工作量。有的問題,需要底層的日志才能定位。

業(yè)務層級:主要打印業(yè)務相關(guān)的日志

插件層級:由于和第三方對接,需要引入第三方的jar等,抓取到的插件的日志。

返回碼、描述、標準化

返回碼:一般是三位數(shù)字,只能表示一個范圍,不能精準定位問題

描述:是返回的描述信息,可以精準定位問題。但是現(xiàn)在有個錯誤的使用,這個描述本來是為了方便后端工程師定位問題的,前端工程師在做問題展示的時候,直接使用了,由于排查問題的描述和展示給客戶的描述是不一樣的,導致此描述不能精準定位問題了。如果需要使用后端的信息做展示,建議另創(chuàng)建個字段

標準化:這個非常重要,如果進行標準化處理,大家一眼就能判斷問題出在哪里了。

下面這段代碼是“聚寶盆”框架返回的標準屬性,可供參考

@ApiModelProperty(value="返回碼,200成功,其他為失敗。頁面通過返回碼處理不同的業(yè)務")
private int returnCode = 200;
@ApiModelProperty(value="錯誤信息,此信息只能用于接口對接,排查錯誤,不能用于頁面展示")
private String returnDesc = "成功";
@ApiModelProperty(value="前端顯示的信息")
private String returnShow;

運行時間

運行時間的打印,是進行性能調(diào)優(yōu)的一個非常重要的日志。因為太重要了,所以單列一個標題

日志的記錄

如果能夠理解日志打印的指導思想,我相信日志打印對你來說不是一件難事。

必須打印的日志

接口的入口處和返回處:入口需要打印傳入的參數(shù),返回處需要打印返回的信息。

調(diào)用接口的前后:調(diào)用接口前要打印請求的參數(shù),調(diào)用接口后要打印請求的參數(shù)、返回的值,還要打印接口運行的時間。

錯誤的分支:每個異常的分支,都必須打印日志。if必須有slse,switch必須有default。見下圖所示

/////////例子1/////////
if(){
//正常業(yè)務邏輯
}else{
//異常,此處必須有日志
}
////////例子2/////////
if(){
//異常,此處必須有日志
}
//正常業(yè)務邏輯
/////////////例子3/////////
switch (key) {
case value:
	//正常業(yè)務邏輯
	break;
...//正常業(yè)務邏輯
default:
    //異常,此處必須有日志
	break;
}

catch:如果程序異常了,必須捕獲并打印日志

數(shù)據(jù)庫:操作數(shù)據(jù)庫的日志必須打印,包括執(zhí)行的語句和傳入的參數(shù)

可能出錯的語句前面:如果執(zhí)行的語句有報錯的概率,一定要在前面打印入?yún)?,方便排錯。

可選的日志

個人認為如果必須打印的日志都打印了,就完全可以滿足排錯的需要了。

到此,關(guān)于“java日志怎么理解”的學習就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>
文章題目:java日志怎么理解
瀏覽地址:http://weahome.cn/article/gsipoj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部