精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

別在Java代碼里亂打日志了,這才是正確的打日志姿勢!

開發(fā) 后端
當(dāng)你遇到問題的時候,只能通過debug功能來確定問題,你應(yīng)該考慮打日志,良好的系統(tǒng),是可以通過日志進(jìn)行問題定為的。

[[269130]]

使用slf4j

  1. 使用門面模式的日志框架,有利于維護(hù)和各個類的日志處理方式統(tǒng)一。
  2. 實現(xiàn)方式統(tǒng)一使用: Logback框架

打日志的正確方式

什么時候應(yīng)該打日志

  1. 當(dāng)你遇到問題的時候,只能通過debug功能來確定問題,你應(yīng)該考慮打日志,良好的系統(tǒng),是可以通過日志進(jìn)行問題定為的。
  2. 當(dāng)你碰到if…else 或者 switch這樣的分支時,要在分支的首行打印日志,用來確定進(jìn)入了哪個分支
  3. 經(jīng)常以功能為核心進(jìn)行開發(fā),你應(yīng)該在提交代碼前,可以確定通過日志可以看到整個流程

基本格式

必須使用參數(shù)化信息的方式:

  1. logger.debug("Processing trade with id:[{}] and symbol : [{}] ", id, symbol); 

對于debug日志,必須判斷是否為debug級別后,才進(jìn)行使用:

  1. if (logger.isDebugEnabled()) { 
  2.     logger.debug("Processing trade with id: " +id + " symbol: " + symbol); 

不要進(jìn)行字符串拼接,那樣會產(chǎn)生很多String對象,占用空間,影響性能。

反例(不要這么做):

  1. logger.debug("Processing trade with id: " + id + " symbol: " + symbol); 

使用[]進(jìn)行參數(shù)變量隔離

如有參數(shù)變量,應(yīng)該寫成如下寫法:

 

  1. logger.debug("Processing trade with id:[{}] and symbol : [{}] ", id, symbol); 

這樣的格式寫法,可讀性更好,對于排查問題更有幫助。

不同級別的使用

ERROR:

基本概念

影響到程序正常運行、當(dāng)前請求正常運行的異常情況:

  1. 打開配置文件失敗
  2. 所有第三方對接的異常(包括第三方返回錯誤碼)
  3. 所有影響功能使用的異常,包括:SQLException和除了業(yè)務(wù)異常之外的所有異常(RuntimeException和Exception)

不應(yīng)該出現(xiàn)的情況:

比如要使用Azure傳圖片,但是Azure未響應(yīng)

如果有Throwable信息,需要記錄完成的堆棧信息:

  1. log.error("獲取用戶[{}]的用戶信息時出錯",userName,e); 

說明

如果進(jìn)行了拋出異常操作,請不要記錄error日志,由最終處理方進(jìn)行處理:

反例(不要這么做):

  1. try{ 
  2.     .... 
  3. }catch(Exception ex){ 
  4.   String errorMessage=String.format("Error while reading information of user [%s]",userName); 
  5.   logger.error(errorMessage,ex); 
  6.   throw new UserServiceException(errorMessage,ex); 

WARN

基本概念

不應(yīng)該出現(xiàn)但是不影響程序、當(dāng)前請求正常運行的異常情況:

  1. 有容錯機制的時候出現(xiàn)的錯誤情況
  2. 找不到配置文件,但是系統(tǒng)能自動創(chuàng)建配置文件

即將接近臨界值的時候,例如:

  1. 緩存池占用達(dá)到警告線

業(yè)務(wù)異常的記錄,比如:

  1. 當(dāng)接口拋出業(yè)務(wù)異常時,應(yīng)該記錄此異常

INFO:

基本概念

系統(tǒng)運行信息

  1. Service方法中對于系統(tǒng)/業(yè)務(wù)狀態(tài)的變更
  2. 主要邏輯中的分步驟

外部接口部分

  1. 客戶端請求參數(shù)(REST/WS)
  2. 調(diào)用第三方時的調(diào)用參數(shù)和調(diào)用結(jié)果

說明

       1.并不是所有的service都進(jìn)行出入口打點記錄,單一、簡單service是沒有意義的(job除外,job需要記錄開始和結(jié)束,)。

        反例(不要這么做):

 

  1. public List listByBaseType(Integer baseTypeId) {  
  2.  
  3.    log.info("開始查詢基地"); 
  4. BaseExample ex=new BaseExample(); 
  5. BaseExample.Criteria ctr = ex.createCriteria(); 
  6. ctr.andIsDeleteEqualTo(IsDelete.USE.getValue()); 
  7. Optionals.doIfPresent(baseTypeId, ctr::andBaseTypeIdEqualTo); 
  8.    log.info("查詢基地結(jié)束"); 
  9. return baseRepository.selectByExample(ex);  
  10.  

         2.對于復(fù)雜的業(yè)務(wù)邏輯,需要進(jìn)行日志打點,以及埋點記錄,比如電商系統(tǒng)中的下訂單邏輯,以及OrderAction操作(業(yè)務(wù)狀態(tài)變更)。

         3.對于整個系統(tǒng)的提供出的接口(REST/WS),使用info記錄入?yún)?/p>

         4.如果所有的service為SOA架構(gòu),那么可以看成是一個外部接口提供方,那么必須記錄入?yún)ⅰ?/p>

         5.調(diào)用其他第三方服務(wù)時,所有的出參和入?yún)⑹潜仨氁涗浀?因為你很難追溯第三方模塊發(fā)生的問題)

DEBUG

基本概念

  1. 可以填寫所有的想知道的相關(guān)信息(但不代表可以隨便寫,debug信息要有意義,***有相關(guān)參數(shù))
  2. 生產(chǎn)環(huán)境需要關(guān)閉DEBUG信息
  3. 如果在生產(chǎn)情況下需要開啟DEBUG,需要使用開關(guān)進(jìn)行管理,不能一直開啟。

說明

如果代碼中出現(xiàn)以下代碼,可以進(jìn)行優(yōu)化:

 

  1. //1. 獲取用戶基本薪資  
  2. //2. 獲取用戶休假情況  
  3. //3. 計算用戶應(yīng)得薪資 

優(yōu)化后的代碼:

  1. logger.debug("開始獲取員工[{}] [{}]年基本薪資",employee,year); 
  2. logger.debug("獲取員工[{}] [{}]年的基本薪資為[{}]",employee,year,basicSalary); 
  3. logger.debug("開始獲取員工[{}] [{}]年[{}]月休假情況",employee,year,month);  
  4. logger.debug("員工[{}][{}]年[{}]月年假/病假/事假為[{}]/[{}]/[{}]",employee,year,month,annualLeaveDays,sickLeaveDays,noPayLeaveDays); 
  5. logger.debug("開始計算員工[{}][{}]年[{}]月應(yīng)得薪資",employee,year,month);  
  6. logger.debug("員工[{}] [{}]年[{}]月應(yīng)得薪資為[{}]",employee,year,month,actualSalary); 

TRACE

基本概念

特別詳細(xì)的系統(tǒng)運行完成信息,業(yè)務(wù)代碼中,不要使用.(除非有特殊用意,否則請使用DEBUG級別替代)

規(guī)范示例說明

 

  1. @Override 
  2. @Transactional 
  3. public void createUserAndBindMobile(@NotBlank String mobile, @NotNull User user) throws CreateConflictException{ 
  4.     boolean debug = log.isDebugEnabled(); 
  5.     if(debug){ 
  6.         log.debug("開始創(chuàng)建用戶并綁定手機號. args[mobile=[{}],user=[{}]]", mobile, LogObjects.toString(user)); 
  7.     } 
  8.     try { 
  9.         user.setCreateTime(new Date()); 
  10.         user.setUpdateTime(new Date()); 
  11.         userRepository.insertSelective(user); 
  12.         if(debug){ 
  13.             log.debug("創(chuàng)建用戶信息成功. insertedUser=[{}]",LogObjects.toString(user)); 
  14.         } 
  15.         UserMobileRelationship relationship = new UserMobileRelationship(); 
  16.         relationship.setMobile(mobile); 
  17.         relationship.setOpenId(user.getOpenId()); 
  18.         relationship.setCreateTime(new Date()); 
  19.         relationship.setUpdateTime(new Date()); 
  20.         userMobileRelationshipRepository.insertOnDuplicateKey(relationship); 
  21.         if(debug){ 
  22.             log.debug("綁定手機成功. relationship=[{}]",LogObjects.toString(relationship)); 
  23.         } 
  24.         log.info("創(chuàng)建用戶并綁定手機號. userId=[{}],openId=[{}],mobile=[{}]",user.getId(),user.getOpenId(),mobile); // 如果考慮安全,手機號記得脫敏 
  25.     }catch(DuplicateKeyException e){ 
  26.         log.info("創(chuàng)建用戶并綁定手機號失敗,已存在相同的用戶. openId=[{}],mobile=[{}]",user.getOpenId(),mobile); 
  27.         throw new CreateConflictException("創(chuàng)建用戶發(fā)生沖突, openid=[%s]",user.getOpenId()); 
  28.     } 
責(zé)任編輯:龐桂玉 來源: Java團長
相關(guān)推薦

2024-09-25 08:22:06

2019-01-02 10:49:54

Tomcat內(nèi)存HotSpot VM

2021-11-05 10:36:19

性能優(yōu)化實踐

2020-08-05 07:27:54

SQL優(yōu)化分類

2021-09-30 06:13:36

打印日志error

2021-05-21 13:10:17

kill -9微服務(wù)Java

2017-06-12 16:17:07

2020-06-28 16:28:24

Windows 10WindowsU盤

2018-07-30 11:21:30

華為云

2022-08-28 16:54:02

開發(fā)日志Java

2025-01-10 06:30:00

2021-05-26 05:33:30

5G網(wǎng)絡(luò)運營商

2024-09-09 11:11:45

2025-04-25 10:28:40

2020-03-06 16:50:08

Java錯誤日志

2019-12-04 18:45:00

華為Mate X

2022-02-18 11:26:23

日志程序Linux

2025-01-15 12:31:46

2019-05-05 09:24:09

KafkaTopicPartition

2021-11-25 07:43:56

CIOIT董事會
點贊
收藏

51CTO技術(shù)棧公眾號

国产免费视频一区二区三区| 欧美亚洲色综久久精品国产| 亚洲最大网站| 国产精品夫妻自拍| 国产精品久久久久久久小唯西川| 国产精品第9页| 久久大综合网| 日韩激情片免费| 免费网站在线观看黄| 欧美办公室脚交xxxx| 中文字幕亚洲综合久久菠萝蜜| 国产精品一码二码三码在线| 中文字幕视频免费观看| 国产91精品久久久久久久网曝门| 日韩精品999| 欧美日韩一区二区三区69堂| 2021天堂中文幕一二区在线观| 久久久精品人体av艺术| 99re视频| 中文字幕精品无码亚| 一本色道久久综合亚洲精品不卡 | 亚洲男人的天堂网| 久久99精品久久久久久水蜜桃 | 免费看污污视频| 黄色在线播放| 成人av综合在线| 成人午夜一级二级三级| 亚洲av无码精品一区二区| 在线成人h网| 欧美成人免费一级人片100| 中文字幕免费视频| 久久精品色综合| 日韩三级视频在线看| 第四色婷婷基地| 欧美一级大黄| 精品国产乱码久久久久久虫虫漫画| 中文网丁香综合网| 成人在线视频成人| 久久免费偷拍视频| 国产一区二区在线网站| 性一交一乱一透一a级| 黄色资源网久久资源365| 国产成人一区二区三区电影| 中文字幕第四页| 在线一区视频| 97国产精品久久| 国产极品美女高潮无套嗷嗷叫酒店| 亚洲电影影音先锋| 久久在线视频在线| 精品国产视频一区二区三区| 日韩精品1区| 色吧影院999| 欧美性猛交xxxx乱大交少妇| 日韩www.| 久久最新资源网| 久久久久久久久久97| 久久国产成人午夜av影院宅| 中文字幕日韩av电影| 亚洲午夜精品久久久久久高潮| 国产精品手机在线播放| 亚洲三级av在线| 亚洲色成人网站www永久四虎| 国产一区二区三区四区| 亚洲最新视频在线| 日本不卡一区视频| 亚洲欧美综合久久久| 欧美大胆在线视频| 国产一级二级毛片| 在线亚洲自拍| 国产精品www色诱视频| 真实新婚偷拍xxxxx| 久久99久久久久久久久久久| 97人人干人人| 亚洲 国产 欧美 日韩| 久久久亚洲精品石原莉奈| 污视频在线免费观看一区二区三区| 成人性爱视频在线观看| 1024成人网| 免费特级黄色片| 三级成人在线| 91麻豆精品国产91久久久使用方法 | 国产精品一品| 色综合久久天天综合网| 不卡中文字幕在线观看| 成人午夜大片| 中国日韩欧美久久久久久久久| 日韩激情小视频| 国产精品亚洲欧美| 国产精品一区二区电影| 亚洲第一页在线观看| 26uuu成人网一区二区三区| 亚洲午夜精品久久久久久浪潮| 4438x成人网全国最大| 懂色av影视一区二区三区| 91视频这里只有精品| 蜜桃久久久久| 爱福利视频一区| 国产成人无码精品久在线观看 | 91丨porny丨九色| 神马午夜久久| 久久手机免费视频| 成人h动漫精品一区二区下载| 国产在线国偷精品产拍免费yy| 极品日韩久久| 国产盗摄在线观看| 一本大道av一区二区在线播放| 国产一级片中文字幕| 国产成人精品三级高清久久91| 九色精品免费永久在线| 中文天堂在线播放| 91香蕉国产在线观看软件| 在线播放 亚洲| 欧美日韩免费看片| 亚洲第一色在线| 精品国产视频一区二区三区| 日韩黄色小视频| 国产手机精品在线| a视频在线观看免费| 欧美亚洲一区二区在线观看| 好吊色视频一区二区三区| 亚洲啊v在线观看| 国产激情视频一区| 日韩精品视频无播放器在线看| 亚洲欧美电影院| www.国产视频.com| 欧美日韩一二三四| 国产脚交av在线一区二区| 婷婷婷国产在线视频| 天天色天天操综合| 国产a√精品区二区三区四区| 91成人影院| 国产精品爽爽爽| 都市激情一区| 欧美性色综合网| 在线不卡av电影| 欧美黄色aaaa| 91影院未满十八岁禁止入内| 成人在线网址| 欧美一区在线视频| 欧美三级黄色大片| 韩国精品免费视频| 中国一区二区三区| 成人精品在线| 欧美另类第一页| 国产夫妻性生活视频| 亚洲猫色日本管| 中文字幕无人区二| 亚洲一级二级| 狼狼综合久久久久综合网| 日韩伦理精品| 亚洲人成免费电影| 中文字幕一区二区三区免费看| 国产欧美日韩视频在线观看| 欧美日韩怡红院| 91嫩草亚洲精品| 成人性生交xxxxx网站| 91最新在线视频| 欧美成人欧美edvon| 人人干人人干人人干| 久久综合久色欧美综合狠狠| 欧美激情精品久久久久久小说| 精品久久影视| 91久久国产精品| 神马午夜伦理不卡| 亚洲精品乱码久久久久久金桔影视 | 国产精品成人99一区无码| 99国产精品视频免费观看一公开 | 久久99久久99小草精品免视看| 中文字幕成人一区| 福利电影一区 | 亚洲高清在线一区| 韩国福利视频一区| 国产女人在线视频| 制服丝袜成人动漫| 色网站在线播放| 国产肉丝袜一区二区| 在线观看日本www| 亚洲高清毛片| 日韩精彩视频| 欧美9999| 国产99在线|中文| 美女免费久久| 亚洲丁香久久久| 最近中文字幕在线视频| 亚洲男人的天堂在线aⅴ视频| 伊人网综合视频| 捆绑调教美女网站视频一区| 国产黄色激情视频| 国产精品片aa在线观看| 亚洲影视九九影院在线观看| 中文字幕影音在线| 久久在精品线影院精品国产| 四虎影院在线域名免费观看| 欧美精品在线视频| 中国一级免费毛片| 亚洲女人小视频在线观看| 丰满少妇一区二区三区| 国产在线麻豆精品观看| 日本精品免费在线观看| 亚洲a在线视频| 日韩国产美国| 久久久久久久久久久久久久久久久久久久| 欧洲成人免费视频| 欧美xxxx黑人又粗又长| 最近中文字幕2019免费| 亚洲欧洲国产综合| 欧美成va人片在线观看| 中文字幕乱码一区二区 | 久久久久久久久91| 在线免费观看的av网站| 亚洲欧美日韩国产精品| 欧美一区二区在线观看视频| 911精品产国品一二三产区| 蜜臀精品一区二区三区| 亚洲国产综合在线| 国产午夜精品理论片| 国产精品拍天天在线| 三级黄色片网站| 粉嫩高潮美女一区二区三区 | 精品国产免费av| 欧美韩国一区| 国产女主播av| 香蕉av一区二区| 亚洲日本无吗高清不卡| 国产成人黄色| 欧美精品一区二区三区在线看午夜 | 欧美日韩一区二区三区视频| 久久久久久少妇| 亚洲成av人片在线观看无码| 欧美精品xxxxx| 亚洲欧美一区二区三区国产精品 | 亚洲欧洲一区二区天堂久久| 真人做人试看60分钟免费| 久久久久亚洲| 亚洲区成人777777精品| 91成人观看| japanese在线播放| 午夜日韩激情| 人人妻人人澡人人爽欧美一区| 欧美a级一区| www.69av| 激情综合电影网| r级无码视频在线观看| 国语精品一区| 波多野结衣之无限发射| 国产午夜久久| 欧美黄网站在线观看| 国产精品人人爽人人做我的可爱| www在线观看免费| 欧美一级做a| 欧美mv和日韩mv国产网站| 国产麻豆精品一区| 91精品婷婷国产综合久久性色 | 蜜乳av一区二区| 国产原创精品在线| 激情综合网天天干| 九九九久久久久久久| 国产99久久久国产精品潘金 | 日本一区二区三区在线观看| 欧美一区深夜视频| 午夜在线激情影院| 欧美国产第一页| hd国产人妖ts另类视频| 91精品国产色综合久久不卡98| 亚洲黄色中文字幕| 国产精品日韩av| 国产精品亚洲欧美日韩一区在线| 高清视频一区| 亚洲精品亚洲人成在线| 亚洲一区二区四区| 欧美福利影院| 97xxxxx| 琪琪一区二区三区| 日本成人xxx| 91日韩精品一区| 五月婷婷综合激情网| 亚洲一级在线观看| 麻豆成人免费视频| 欧美福利电影网| 天堂在线视频观看| 永久555www成人免费| 在线视频国产区| 欧美一级电影久久| 日韩在线激情| 精品九九九九| 欧美电影一二区| 欧美精品自拍视频| 免费不卡在线观看| 久久久久久久久久影视| 国产欧美一区二区精品婷婷| 国产盗摄x88av| 色婷婷av一区二区三区gif| 99在线观看精品视频| 亚洲人成网7777777国产| 污污片在线免费视频| 国产精品电影一区| 国产精品chinese在线观看| 亚洲aⅴ天堂av在线电影软件| 好吊日精品视频| 三上悠亚av一区二区三区| 成人av综合一区| 中国毛片直接看| 欧美日韩性视频| 精品国产18久久久久久| 在线中文字幕日韩| 国产社区精品视频| 91色琪琪电影亚洲精品久久| 国产精品日韩精品中文字幕| www插插插无码视频网站| 久久99精品网久久| 国产在线综合视频| 天天色 色综合| 男人天堂一区二区| 欧美成年人视频网站欧美| 日韩欧美一区二区三区在线观看 | 黑人操亚洲女人| 俺也去精品视频在线观看| 日韩美女在线看免费观看| 国产一级精品aaaaa看| 欧美69视频| 欧美日韩久久婷婷| 中文字幕精品综合| 一级片在线观看免费| 亚洲精品成人免费| 欧美wwww| 国产二区一区| 欧美午夜电影在线观看 | 中文字幕视频一区二区| 亚洲午夜小视频| 亚洲黄色网址| 欧美男人的天堂| 亚洲女人av| 一区二区不卡免费视频| 亚洲成人av电影| 手机看片1024日韩| 国产69精品久久久| 国产精品对白| 日本a视频在线观看| av亚洲精华国产精华| 成人免费看片98| 日韩三级视频在线看| 欧美家庭影院| 国产精品乱码一区二区三区| 国内精品久久久久久久97牛牛| 最好看的中文字幕| 亚洲最大的成人av| 黑人操亚洲女人| 欧美性受xxx| 精品中文一区| 国产精品一区二区羞羞答答| 国产精品另类一区| 国产免费不卡av| 欧美日韩国产91| 欧美精品国产白浆久久久久| 乱人伦xxxx国语对白| 国产亚洲成aⅴ人片在线观看| 青娱乐在线免费视频| 久久久av免费| 999国产精品一区| 18禁男女爽爽爽午夜网站免费| 国产亚洲精品7777| 91高潮大合集爽到抽搐| 欧美成人免费小视频| 欧美变态网站| 色免费在线视频| 亚洲乱码国产乱码精品精98午夜| 欧美熟妇另类久久久久久不卡| 青青久久av北条麻妃海外网| 日本不卡二三区| 国产精品无码自拍| 狠狠色噜噜狠狠狠狠97| 色开心亚洲综合| 成人国产一区二区| 午夜在线视频一区二区区别 | 午夜视频一区二区| 狠狠v欧美ⅴ日韩v亚洲v大胸| 91精品国产综合久久香蕉最新版| 国产精品大片| www色com| 精品国产乱码久久久久久久| 日韩免费福利视频| 亚洲色图都市激情| 2021国产精品久久精品| 国产又粗又黄又爽的视频| 国内偷自视频区视频综合| 精品一区二区三| 苍井空张开腿实干12次| 在线观看91视频| 国精一区二区三区| 视频一区二区三区在线观看 | 91麻豆精品久久久久蜜臀| 热三久草你在线| 玖玖精品在线视频| 国产午夜亚洲精品午夜鲁丝片| www.久久精品.com| 国产精品久久久久久亚洲影视| 亚洲五月婷婷| 午夜成人亚洲理伦片在线观看| 精品亚洲国产视频| 免费一级欧美在线大片|