您好,登錄后才能下訂單哦!
這篇文章主要介紹“java日志怎么理解”,在日常操作中,相信很多人在java日志怎么理解問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”java日志怎么理解”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
“無日志,不運維”。重要指數:最高級。
能快速、精準定位問題,日志要能顯示出錯誤的原因。這句話非常重要,這是日志打印的指導思想。
分類很重要,不同的功能,不同的業務需要不同的日志。分類越詳細,越便于問題的定位。
從打印的日志類型進行劃分,可以分為:控制臺日志、文件日志、數據庫日志、kafka+elk日志。這些是我目前接觸過的。
控制臺日志:用于簡單代碼的測試
文件日志、數據庫日志:我是不推薦使用的,已經out了
kafka+elk日志:我目前接觸最好的日志
@timestamp:是日志打印的時間
level:是日志的級別
loggerName:是創建logger時,傳的class參數
message:是打印的日志
projectMarker:是我添加的,用于區分項目和環境的。通過本截圖可以看出,此條日志是seal項目的正式環境日志。如果是“seal.test”表示是seal的測試環境。此功能只有我開發的框架“聚寶盆”才有。
source.class:是打印日志的類的全名稱
source.line:是打印日志在類中的行號
source.method:是打印日志的方法名
日志輸出的優先級: debug < info < warn < error < fatal,info、warn、error是必須用到的。
info:正常信息的打印,為了方便排錯、調試。
warn:可以忽略的錯誤。比如密碼錯誤、session過期等。
error:不允許的錯誤。此錯誤會導致正常業務的進行。
個人認為日志應該分為框架層級、業務層級、插件層級幾個方面。
框架層級:項目使用的框架打印的日志。這類日志是為了從底層排查問題使用的(如果業務層不能排查)。一般是架構師搭建的。此類層級的日志非常重要,因為框架級別的日志具有普遍性、通用性等特點,框架打印了日志,業務層就不需要在寫日志了,減少了業務開發的工作量。有的問題,需要底層的日志才能定位。
業務層級:主要打印業務相關的日志
插件層級:由于和第三方對接,需要引入第三方的jar等,抓取到的插件的日志。
返回碼:一般是三位數字,只能表示一個范圍,不能精準定位問題
描述:是返回的描述信息,可以精準定位問題。但是現在有個錯誤的使用,這個描述本來是為了方便后端工程師定位問題的,前端工程師在做問題展示的時候,直接使用了,由于排查問題的描述和展示給客戶的描述是不一樣的,導致此描述不能精準定位問題了。如果需要使用后端的信息做展示,建議另創建個字段
標準化:這個非常重要,如果進行標準化處理,大家一眼就能判斷問題出在哪里了。
下面這段代碼是“聚寶盆”框架返回的標準屬性,可供參考
@ApiModelProperty(value="返回碼,200成功,其他為失敗。頁面通過返回碼處理不同的業務") private int returnCode = 200; @ApiModelProperty(value="錯誤信息,此信息只能用于接口對接,排查錯誤,不能用于頁面展示") private String returnDesc = "成功"; @ApiModelProperty(value="前端顯示的信息") private String returnShow;
運行時間的打印,是進行性能調優的一個非常重要的日志。因為太重要了,所以單列一個標題
如果能夠理解日志打印的指導思想,我相信日志打印對你來說不是一件難事。
接口的入口處和返回處:入口需要打印傳入的參數,返回處需要打印返回的信息。
調用接口的前后:調用接口前要打印請求的參數,調用接口后要打印請求的參數、返回的值,還要打印接口運行的時間。
錯誤的分支:每個異常的分支,都必須打印日志。if必須有slse,switch必須有default。見下圖所示
/////////例子1///////// if(){ //正常業務邏輯 }else{ //異常,此處必須有日志 } ////////例子2///////// if(){ //異常,此處必須有日志 } //正常業務邏輯 /////////////例子3///////// switch (key) { case value: //正常業務邏輯 break; ...//正常業務邏輯 default: //異常,此處必須有日志 break; }
catch:如果程序異常了,必須捕獲并打印日志
數據庫:操作數據庫的日志必須打印,包括執行的語句和傳入的參數
可能出錯的語句前面:如果執行的語句有報錯的概率,一定要在前面打印入參,方便排錯。
個人認為如果必須打印的日志都打印了,就完全可以滿足排錯的需要了。
到此,關于“java日志怎么理解”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。