成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

日志到底該如何打印?

商務辦公
最近在做新項目,一直在加班,期間遇到很多問題,我把一部分歸類為設計原則的問題,當然,這里的設計原則不是特指那個SOLID五大原則,這里是指更廣義的設計原則,不喜勿噴。

 [[376361]]

最近在做新項目,一直在加班,期間遇到很多問題,我把一部分歸類為設計原則的問題,當然,這里的設計原則不是特指那個SOLID五大原則,這里是指更廣義的設計原則,不喜勿噴。

今天,我們來看第一個問題: 日志到底該如何打印?

咋一看,這個問題很簡單,其實不然,我隨手寫幾個,您看看。

  1. log.error("xxxxx"); 
  2.  
  3. log.error(e.getMessage()); 
  4.  
  5. log.error("xxxxx", e.getMessage()); 
  6.  
  7. log.error("xxxxx {}", e.message()); 
  8.  
  9. log.error("xxxxx {}", e); 

好了,就隨便寫這么多,地鐵上打字不太方便,您認為上面那些日志打印方式哪些是正確的?

實話說,沒有正確的,全是錯的。怎么樣,是不是踩坑了,是不是給別人埋過這樣的坑。

那么,怎么打印日志才是正確的呢?

如果您使用的是slf4j,那么,只有下面這一種是正確的:

log.error("xxxxx, userId={}, xxParam={}", userId, xxParam, e);

首先,打印日志必須帶上上下文信息,比如,用戶ID,關鍵參數(shù),同時,如果是捕獲異常里面打印的日志,必須把原來的e打印出來,否則,排查日志想死的心都有了。

比如,我最近就遇到一個同學,他把遠程調用用一個try catch包著,并在catch中捕獲了異常,打印了日志"遠程調用錯誤xxx",呵呵,有一次請求失敗,非要說遠程調用失敗,對方出錯了,對方說我沒收到請求呀,兩人撕逼,最后找到我,我一看這代碼,說了一句,把e打印出來再重新調用,結果可想而知,他自己空指針了,呵呵了。

再說回上面的打印方式,有的同學可能會質疑,前面引號里明明是兩個大括號,后面卻出現(xiàn)3個變量,確定這個e能打印出來?

你是在懷疑我嗎?自己看源碼去。源碼中已經(jīng)明確寫了如果最后一個參數(shù)是Exception類型,就不會參與字符串格式化,會單獨拿出來打印,同時,可以打印出堆棧信息。看源碼去吧,我在地鐵上,就不截圖了。

你以為本篇文章就結束了嗎?那你就錯了。

有沒有更優(yōu)雅的日志打印方式呢?

我認為,最好的日志是以解決問題的方式打印日志。

怎么理解呢?

我們以服務注冊為例,當注冊中心地址不通的時候,我們能不能這樣打印呢?

"從 112.112.112.112 到注冊中心 113.113.113.113的網(wǎng)絡不通,請檢查注冊中心是否啟動,網(wǎng)絡防火墻是否暢通,balabala"。

這樣的方式就比較好,給使用者提供解決方案,你只要按著給出的方案排查一下,大概率就能解決了你的問題,這才是最優(yōu)雅的打印姿勢。

好了,今天的內容就到這里,嗐,差點坐過站。

本文轉載自微信公眾號「 彤哥讀源碼  」,可以通過以下二維碼關注。轉載本文請聯(lián)系 彤哥讀源碼  公眾號。

 

責任編輯:武曉燕 來源: 彤哥讀源碼
相關推薦

2020-07-14 14:40:05

激光噴墨打印

2021-03-04 09:11:57

日志開發(fā)打印

2022-05-16 10:59:46

GPIOLinux內核

2021-07-08 21:51:03

5G技術Wi-Fi 6

2022-06-14 21:14:18

5.5GAI數(shù)字化

2018-03-13 11:13:07

噴墨激光打印機

2024-01-25 18:00:56

微服務系統(tǒng)KafkaRabbitMQ

2019-08-20 09:16:39

6G網(wǎng)絡1G

2022-02-23 21:08:53

數(shù)字4G5G

2011-07-28 20:32:51

2015-06-02 11:26:29

產品團隊

2011-07-29 10:51:26

2020-06-02 14:40:42

5G邊緣計算物聯(lián)網(wǎng)

2025-03-31 08:04:50

MySQLCPU內存

2020-12-30 09:00:00

安全工具攻擊

2017-01-06 14:57:02

2009-04-24 08:26:02

Mobile Mark移動OS

2015-09-25 11:03:14

數(shù)據(jù)中心日志分析

2017-04-05 21:43:08

MQ互聯(lián)網(wǎng)架構

2023-03-15 08:42:06

form表單設計接口
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 99久久婷婷国产亚洲终合精品 | 久久99视频这里只有精品 | 伊人精品国产 | 久久免费精品视频 | 久久久99国产精品免费 | 欧美一区二区三区小说 | 男女网站免费观看 | 91久久精品国产免费一区 | 欧美日韩综合一区 | 午夜免费福利电影 | 午夜在线免费观看视频 | 亚洲免费在线观看视频 | 成人av电影在线观看 | 久久91精品久久久久久9鸭 | 亚洲高清在线 | 亚洲一区中文字幕 | 日韩欧美在线观看 | 亚洲一区二区在线视频 | 黄色毛片一级 | 粉嫩国产精品一区二区在线观看 | 国产人成精品一区二区三 | 天天操夜夜操 | 国产精品视频网址 | 成人精品一区二区户外勾搭野战 | jvid精品资源在线观看 | 福利片在线看 | 天天看天天爽 | 手机看片1 | 色五月激情五月 | 久久国产欧美日韩精品 | 欧美一区永久视频免费观看 | 91麻豆精品国产91久久久资源速度 | 久久亚洲国产精品 | 欧美精品一二区 | 久久人人爽人人爽人人片av免费 | 一区二区三区视频免费观看 | 九九热免费视频在线观看 | 午夜小视频在线观看 | 亚洲免费视频一区 | 国产精品一区二区在线播放 | 久久久无码精品亚洲日韩按摩 |