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

寫日志也有十誡?高手都在偷偷遵守的高質量日志十法則!

開發 前端
多數人寫日志的方式,就像做飯時隨便往鍋里扔鹽——反正能吃就行。但當真正遇到生產事故時,你才會意識到日志寫法水平的差距,完全可以決定排障時間是10 分鐘還是整整熬夜到天亮。

工程體系里有很多“表面不起眼,但真正能拉開工程師層次差距”的細節,其中日志絕對是最容易被忽視的一環。

多數人寫日志的方式,就像做飯時隨便往鍋里扔鹽——反正能吃就行。但當真正遇到生產事故時,你才會意識到日志寫法水平的差距,完全可以決定排障時間是10 分鐘還是整整熬夜到天亮

我曾見過一個團隊,僅僅因為業務鏈路日志缺失,整整排查了一周;看日志就像在看“無意義的人類詩歌”:

Processing started
...
Processing finished

沒有上下文、沒有關鍵參數、沒有定位線索,就像拿著一張白紙找 bug。

為了避免大家繼續在“見招拆招”中浪費生命,我將實踐中踩過的坑、看過的事故、經歷過的慘案整理成這篇“日志世界觀重構指南”。如果你能堅持把這些原則融入開發習慣里,你的整體工程能力會立刻上一個臺階——甚至可能在下一次線上事故中成為團隊的救世主。

日志的本質意義:不是寫給代碼看的,而是寫給凌晨 3 點的自己看的

1. 日志首先是用來“被人閱讀”的

很多開發下意識以為日志只是“為了排查”,但真正應該問的是:是誰來排查?

——當然是你自己,或者倒霉的同事。

所以寫日志時一定要假設:你凌晨三點頂著黑眼圈在翻日志,能否快速看懂現在發生了什么?

錯誤示范:

log.info("Processing started");
...
log.info("Processing finished");

改進示范:

log.info("Begin processing payment. userId={}, orderId={}, amount={}",
        userId, orderId, amount);
...
log.info("Payment processing completed. userId={}, orderId={}, result={}",
        userId, orderId, result);

日志不是隨便寫一句話,它是一個“定位線索”。

2. “多打點日志”不是解決問題,而是制造噪音

在某個項目里,我見過 5 分鐘生成 50MB 日志的詭異現場,內容如下:

log.debug("Entering method A");
log.debug("Exiting method A");
log.debug("Entering method B");
log.debug("Exiting method B");

這種日志不是幫助排障,是污染系統

每一行日志都有代價:I/O、存儲、閱讀成本。 日志不是越多越好,而是越有用越好。

3. 開發視角與業務視角的區分

普通日志寫法往往是“程序員自言自語”:

log.info("User data parsed, updating cache");

高級日志應該更接近業務含義:

log.info("Order status changed. userId={}, orderId={}, from={}, to={}",
        userId, orderId, oldStatus, newStatus);

這樣的日志不但技術人員能看懂,產品、運營也能感知業務變化。

日志級別:正確使用日志級別,是專業工程師的基本素養

1. 標準級別使用規則

級別

用途

ERROR

系統出現無法繼續運行的嚴重錯誤,需要立即處理

WARN

潛在風險,今天沒出事不代表明天不會出事

INFO

業務流程關鍵節點

DEBUG

開發調試用信息,通常不在生產環境開啟

TRACE

最細粒度執行路徑,僅在極端場景使用

2. 90% 的錯誤級日志都是濫用

經典錯誤寫法:

try {
    // biz logic
} catch (Exception e) {
    log.error("Processing failed", e);
}

但很多異常其實是正常的業務分支:

try {
    authService.login(username, password);
} catch (InvalidCredentialsException e) {
    log.info("Login failed: wrong password. username={}", username);
    return "Incorrect password";
} catch (Exception e) {
    log.error("Unexpected exception during login. user={}", username, e);
    return "System error";
}

業務異常不是 ERROR,系統異常才是。

3. 不同運行環境的日志策略

環境

推薦級別

開發環境

DEBUG / TRACE

測試環境

INFO

生產環境

INFO 或 WARN

典型配置示例:

logging.level.root=WARN
logging.level.com.icoderoad.core=INFO
logging.level.com.icoderoad.thirdparty=ERROR

日志內容:什么樣的日志才算“有價值”?

 一條高質量日志的要素

必須包含:

  • 時間戳
  • 服務標識
  • 請求鏈路 ID(TraceId)
  • 操作主體(誰)
  • 行為(做了什么)
  • 參數(關鍵信息)
  • 結果(成功/失敗)

反例:

log.info("Payment success");

正確寫法:

log.info("[OrderCenter] Payment success. userId={}, orderId={}, amount={}, channel={}, cost={}ms",
        userId, orderId, amount, channel, costTime);

防止日志污染的實踐技巧

① 不要在循環里打印日志

錯誤寫法:

for (Item item : items) {
    log.info("Processing item: {}", item);
}

改進:

log.info("Processing {} items", items.size());
// ...
log.info("Finished processing. total={}, success={}, failed={}",
        items.size(), successCount, failCount);

② 禁止字符串拼接寫法

log.debug("User:" + user.getName()); // 會提前拼接,浪費性能

正確寫法:

log.debug("User: {}, ID: {}", user.getName(), user.getId());

③ 避免輸出整個大對象

log.debug("User data: {}", user); // 危險

④ 敏感數據打碼

包括密碼、手機號、身份證號等。

⑤ 使用 MDC 關聯鏈路日志

⑥ 過期日志要及時清理

⑦ 對于復雜日志打印,先判斷級別

if (log.isDebugEnabled()) {
    log.debug("Details: {}", buildDetail(obj));
}

結構化日志:現代系統的必備能力

1. 為什么 JSON 日志逐漸取代文本日志?

  • 機器可讀
  • 結構清晰
  • 索引友好
  • 易于可視化與分析
  • 容易接入 ELK/EFK

2. Spring Boot JSON 日志配置示例

logback-spring.xml

<configuration>
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder class="net.logstash.logback.encoder.LogstashEncoder"/>
    </appender>


    <root level="INFO">
        <appender-ref ref="CONSOLE" />
    </root>
</configuration>

示例輸出(JSON):

{
  "timestamp": "2023-01-01T12:00:00.000Z",
  "level": "INFO",
  "logger": "com.icoderoad.order.OrderService",
  "message": "User payment successful",
  "userId": "12345",
  "orderId": "ORD9876",
  "amount": 99.99
}

性能:日志不是免費的,寫得多寫得重會拖垮系統

1. 日志對性能的影響來源

  • 磁盤 I/O
  • 字符串拼接
  • 同步寫入鎖競爭
  • 緩沖區刷新

重負載場景下,日志甚至會讓系統吞吐下降 30%-50%

2. 使用異步日志降低阻塞

<appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender">
    <appender-ref ref="FILE" />
    <queueSize>512</queueSize>
    <discardingThreshold>0</discardingThreshold>
</appender>

3. 高并發下的日志策略

  • 采樣日志(Sampled Logging)
  • 批量寫入
  • 非阻塞隊列
  • 增大 Log Buffer

示例:

if (Math.random() < 0.01) {
    log.info("Sampled request: {}, headers={}", request, headers);
}

日志治理:從可用到可觀測的跨越

1. 日志滾動與歸檔

<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
    <fileNamePattern>app-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
    <maxFileSize>100MB</maxFileSize>
    <maxHistory>30</maxHistory>
</rollingPolicy>

2. 使用集中式日志系統:ELK / EFK

標準鏈路:

App → Filebeat → Logstash → Elasticsearch → Kibana

3. 日志告警的設計

  • 錯誤量異常升高
  • 特定關鍵詞
  • 日志模式突變
  • 預期行為缺失

合理的噪音過濾非常重要,不然告警就會形同虛設。

真實案例:日志的重要性不是夸出來的,是血淚教訓堆出來的

案例一:因為日志太爛,一個大促損失百萬

支付鏈路失敗后,日志只有:

ERROR Process failed

結果團隊花了 4 小時才查出來是第三方超時。

改造后日志包含:

  • orderId
  • userId
  • channel
  • third-party errorCode
  • traceId

同樣的問題只需要 10 分鐘即可定位。

案例二:一個系統的日志進化史,反映工程能力的成熟過程

從簡單文本:

Message pushed successfully

進化到:

JSON + 鏈路追蹤 + 業務指標 + 錯誤分類統計

日志體系的進化直接推動了系統可觀測性建設,最終整個推送服務的穩定性顯著提高。

總結:日志水平是工程能力的放大器

日志,看似只是“順手寫幾行”,但實際上它是工程體系的核心基石之一。

一個工程師的日志寫法,會深刻影響:

  • 系統可維護性
  • 故障恢復速度
  • 團隊協作效率
  • 線上穩定性
  • 技術體系的成熟度

當你把日志寫好時,你并不只是提高自己的效率,而是在幫助整個團隊、整個系統、整個業務。

優秀的日志不是“錦上添花”,而是雪中送炭

責任編輯:武曉燕 來源: 路條編程
相關推薦

2009-06-08 10:42:24

2012-10-30 09:21:50

2023-10-31 16:22:31

代碼質量軟件開發Java

2013-03-06 09:56:21

2012-10-31 09:30:19

2025-10-06 00:00:00

2024-04-10 08:01:40

2010-07-19 10:48:06

2025-07-01 00:45:00

2017-11-06 05:18:35

2015-05-25 11:16:23

2012-11-07 09:53:50

2025-03-25 09:20:00

NPM庫開發代碼

2023-03-09 15:05:46

HTMLWeb 開發SEO

2020-11-04 10:21:37

機器學習技術人工智能

2011-04-11 09:49:42

2017-07-14 09:54:47

代碼函數程序

2020-05-15 09:50:08

GitHub開源項目

2020-06-08 14:38:26

缺陷卡點團體
點贊
收藏

51CTO技術棧公眾號

一本色道久久88综合亚洲精品ⅰ| 午夜欧美一区二区三区在线播放| 国产在线a不卡| 国产福利视频网站| 超碰成人在线免费| 色综合久久综合网| 樱空桃在线播放| 色婷婷av一区二区三区之e本道| 99热在线精品观看| 综合国产在线观看| 在线观看免费视频黄| 在线成人视屏| 亚洲网友自拍偷拍| 亚洲欧洲国产精品久久| 高h放荡受浪受bl| 男女男精品视频网| 亚洲18私人小影院| 天天鲁一鲁摸一摸爽一爽| 欧美亚洲大陆| 欧美一区二区成人6969| 大香煮伊手机一区| 多野结衣av一区| 一区视频在线播放| 欧美精品123| 黄色三级网站在线观看| 久久99久久久久久久久久久| 91av福利视频| 黄色一级免费视频| 久久在线免费| 亚洲午夜女主播在线直播| 欧美图片自拍偷拍| 亚洲综合伊人| 欧美综合视频在线观看| 亚洲人精品午夜射精日韩 | 成人18视频在线观看| 亚洲第一福利一区| 日韩精品福利片午夜免费观看| 国产精品免费观看| 2020国产精品久久精品美国| 999视频在线免费观看| 这里只有精品免费视频| 新67194成人永久网站| 欧美国产乱视频| 国产suv精品一区二区68| 欧美一区2区| 伊人久久五月天| 成人精品999| 伊人春色精品| 亚洲欧洲在线免费| 西西444www无码大胆| 欧美大奶一区二区| 亚洲精品国产精品国自产在线 | 欧美日韩免费电影| 欧美午夜视频网站| 九九九在线观看视频| 香蕉视频亚洲一级| 欧美吞精做爰啪啪高潮| 尤蜜粉嫩av国产一区二区三区| 日韩欧美看国产| 一本久道久久综合中文字幕 | 日本精品国语自产拍在线观看| 天堂av在线免费观看| 91在线看国产| 日本精品一区二区三区视频| 免费人成在线观看网站| 国产亚洲一区二区三区在线观看| 欧美精品七区| av网站无病毒在线| 国产精品久久久久久妇女6080| 久久一区二区三区超碰国产精品| 欧美精品免费视频| 性欧美在线视频| 影音先锋欧美激情| 亚洲黄色有码视频| 爱爱免费小视频| 日韩精品免费一区二区三区| 久久精品国产久精国产思思| 中文字幕另类日韩欧美亚洲嫩草| 国内精品久久久久久久影视蜜臀| 久久久久久久久久久久久久久久久久av| 久久久久久久久久久久久久久久久 | 美女精品一区最新中文字幕一区二区三区 | aa级大片欧美| 日本精品一区二区三区视频| 免费av在线网址| 亚洲国产精品自拍| 国产免费人做人爱午夜视频| 欧美黄色a视频| 精品免费国产二区三区| 精品人妻一区二区三区视频| 久久国产电影| 久久久免费在线观看| 波多野结衣不卡| 国产一区二区精品在线观看| 国产伦精品一区二区三区照片91| 蝌蚪视频在线播放| 亚洲视频在线一区二区| www在线观看免费| 成人做爰免费视频免费看| 欧美一卡2卡三卡4卡5免费| 99久久人妻精品免费二区| 日本a级不卡| 午夜免费久久久久| 中文字幕人妻一区二区在线视频| 国产成人激情av| 亚洲高清不卡一区| 成人福利电影| 欧美日韩国产精选| 日本japanese极品少妇| 99久久精品网站| 2019中文字幕免费视频| 亚洲最大成人在线视频| 91视频在线看| 久久久久久久香蕉| 成人av色网站| 精品视频久久久久久久| 麻豆疯狂做受xxxx高潮视频| 欧美aaa在线| 久久精品99久久| av大大超碰在线| 欧美日韩国产片| 日本一级免费视频| 最新国产乱人伦偷精品免费网站| 国产精品尤物福利片在线观看| 西西人体44www大胆无码| 亚洲欧美日韩国产综合在线| 黄色国产精品视频| 欧美变态网站| 欧美大片免费观看在线观看网站推荐| 亚洲欧美一区二区三区在线观看| 成人精品免费视频| 国产在线无码精品| 曰本一区二区| 日韩在线视频观看| 中国女人一级一次看片| 久久久久高清精品| 久久无码高潮喷水| jlzzjlzz亚洲女人18| 精品亚洲免a| 超碰精品一区二区三区乱码| 怡红院男人天堂| 欧美激情一区二区三区全黄| 日韩人妻精品无码一区二区三区| 国产成人在线中文字幕| 欧美精品videossex88| 国内老熟妇对白hdxxxx| 亚洲欧美一区二区久久 | 国产一级片视频| 国产999精品久久久久久绿帽| 91制片厂免费观看| 99精品美女视频在线观看热舞| 日韩在线小视频| 国产又粗又猛又爽又黄的| 国产精品伦理一区二区| 三级a三级三级三级a十八发禁止| 第九色区aⅴ天堂久久香| 国产精品久久久久久亚洲调教 | 欧美日韩在线不卡视频| 亚洲人成精品久久久| 欧美在线视频网| 狠狠狠综合7777久夜色撩人| 色8久久人人97超碰香蕉987| 在线观看亚洲大片短视频| 麻豆高清免费国产一区| 国产精品12p| 亚洲成人影音| 97精品国产97久久久久久春色 | 久久奇米777| 九色porny91| 91综合久久一区二区| 亚洲va久久久噜噜噜久久天堂| 99久久精品免费观看国产| 亚洲大胆人体视频| 啦啦啦免费高清视频在线观看| 久久蜜桃av一区二区天堂| 91最新在线观看| 亚洲欧洲日韩| 国产日韩二区| 日韩在线短视频| 俺去啦;欧美日韩| 日韩中文字幕综合| 欧美伊人精品成人久久综合97| sm捆绑调教视频| 国产成人精品www牛牛影视| 国产中文字幕在线免费观看| 精品少妇av| 5566中文字幕一区二区| 国产美女高潮在线| 日韩在线免费观看视频| 蜜桃av中文字幕| 在线观看91精品国产入口| 糖心vlog免费在线观看| 99精品视频在线播放观看| 一区二区三区免费播放| 欧美精品播放| 欧美最大成人综合网| 国产999精品在线观看| 91精品国产99久久久久久| 日韩成人影视| 亚洲精品按摩视频| 国产男女裸体做爰爽爽| 色噜噜狠狠成人网p站| 欧美交换国产一区内射| 国产网站一区二区| 性活交片大全免费看| 老司机免费视频一区二区三区| 日本丰满少妇xxxx| 羞羞答答成人影院www| 久久综合久久综合这里只有精品| 四虎影视成人精品国库在线观看| 97视频在线免费观看| 超碰免费在线播放| 国产亚洲精品久久久| 日本波多野结衣在线| 67194成人在线观看| 日韩黄色片网站| 午夜精品一区二区三区免费视频| 99热99这里只有精品| 久久久精品免费免费| 日韩少妇一区二区| 国产伦精品一区二区三区免费| 热久久精品免费视频| 国产精品日本欧美一区二区三区| 美女黄色片网站| 91久久夜色精品国产按摩| 欧美精品七区| 要久久爱电视剧全集完整观看| 懂色av一区二区三区在线播放| 欧美亚洲福利| 国产精品美女在线观看| 亚洲人体影院| 2025国产精品视频| 日本а中文在线天堂| 国产+人+亚洲| 成人免费高清观看| 欧美精品xxx| 人人澡人人添人人爽一区二区| 日韩在线视频播放| 欧美被日视频| 中文字幕最新精品| 免费大片在线观看www| 最近2019中文字幕第三页视频| 免费福利在线视频| 亚洲欧美综合图区| 裸体xxxx视频在线| 亚洲午夜未满十八勿入免费观看全集| 亚洲人妻一区二区| 日韩精品视频在线播放| 午夜性色福利视频| 亚洲欧美中文在线视频| 酒色婷婷桃色成人免费av网| 亚洲欧美国产精品久久久久久久 | 欧美成人黄色小视频| 黄色的网站在线观看| 久久天天躁日日躁| 中日韩高清电影网| 午夜精品视频在线| 女人让男人操自己视频在线观看| 992tv成人免费影院| 三妻四妾完整版在线观看电视剧 | 亚洲精品午夜| 国产一级特黄a大片99| 任你弄精品视频免费观看| 蜜桃导航-精品导航| av一区二区在线播放| 在线观看成人一级片| 中国精品18videos性欧美| 男女激情免费视频| 亚洲尤物影院| 日本久久久久久久久久久久| 激情五月婷婷综合| 国产日韩视频一区| 久久日韩粉嫩一区二区三区| 欧美日韩生活片| 亚洲美腿欧美偷拍| wwwxxx亚洲| 欧美伊人久久久久久午夜久久久久| 91在线你懂的| 亚洲国产精品久久91精品| 久久经典视频| 久久天天躁狠狠躁夜夜av| yellow字幕网在线| 国产精品青青在线观看爽香蕉| 蜜桃精品视频| 免费一区二区三区| 性欧美69xoxoxoxo| 国产在线观看福利| 九九**精品视频免费播放| 97精品人人妻人人| 国产精品五月天| 国产一级二级三级| 欧美日韩综合在线免费观看| www.黄色一片| 亚洲人成在线观| 怡红院av在线| 国产成人91久久精品| 日本精品在线观看| 日韩精品电影网站| 亚洲欧洲综合| 免费在线观看污网站| 91美女视频网站| 极品颜值美女露脸啪啪| 色老汉一区二区三区| 亚洲成人77777| 中文字幕av日韩| rebdb初裸写真在线观看| 国产精品视频在线观看| 国产精品久av福利在线观看| 亚洲 欧洲 日韩| 久久精品二区三区| 国产xxx在线观看| 欧美国产日本视频| 久久艹免费视频| 日韩精品专区在线影院观看| av资源网在线观看| 欧美亚洲成人网| jizz国产精品| 最新黄色av网站| 麻豆成人久久精品二区三区红| 国产又黄又粗又猛又爽的视频| 亚洲人成网站在线| 日本三级一区二区三区| 精品视频中文字幕| h片在线观看视频免费| 99视频免费观看| 91精品啪在线观看国产81旧版| 亚洲精品高清无码视频| 91丨九色丨蝌蚪富婆spa| 久草视频在线免费看| 3atv在线一区二区三区| 在线观看精品一区二区三区| 国产成人avxxxxx在线看| 蜜桃精品噜噜噜成人av| 欧美日韩在线一| 97久久精品人人做人人爽| 国产亚洲欧美精品久久久久久| 日韩欧美自拍偷拍| 中中文字幕av在线| 91中文在线观看| 综合在线一区| 手机看片国产精品| 亚洲美女在线国产| 亚洲精品字幕在线观看| 欧美激情视频在线免费观看 欧美视频免费一| 亚洲热av色在线播放| 一区二区视频在线观看| 九九在线精品视频| 希岛爱理中文字幕| 日韩午夜av一区| 国内在线免费视频| 国产日韩精品久久| 欧美亚洲专区| 日本二区在线观看| 欧美午夜精品一区二区三区| 成年人在线观看| 国产欧美日韩中文| 亚洲h色精品| 91精产国品一二三| 黄网站色欧美视频| 青青草手机在线| 国产mv免费观看入口亚洲| 精品亚洲成人| 中文字幕1234区| 亚洲影视在线播放| 午夜成人鲁丝片午夜精品| 欧洲永久精品大片ww免费漫画| 国产欧美日韩精品一区二区三区| 嫩草影院国产精品| 亚洲蜜臀av乱码久久精品蜜桃| 丰满熟女一区二区三区| 欧美在线亚洲在线| 日韩三级在线| www日本在线观看| 欧美午夜激情在线| 亚洲图片88| 国产精品乱码视频| 日韩在线观看一区二区| 国产激情无码一区二区三区| 精品免费国产二区三区| 韩日精品一区二区| 国产卡一卡二在线| 久久综合色一综合色88| 中文字幕有码无码人妻av蜜桃| 久久91亚洲精品中文字幕| 三级小说欧洲区亚洲区| 色啦啦av综合| 香蕉成人伊视频在线观看| 国产黄在线观看免费观看不卡| 91亚洲永久免费精品| 亚洲尤物在线| 欧美成人三级在线观看| 亚洲精品视频在线观看视频| 四虎影视成人精品国库在线观看 | 神马久久午夜| 一区二区三区四区视频在线观看| 成人午夜激情在线| 最近国语视频在线观看免费播放| 久久久久久成人精品| 精品久久网站| 99精品一区二区三区无码吞精|