精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

国产一区二区三区在线看麻豆| 日本在线视频网址| 日本视频在线一区| 久久中文久久字幕| xxxxwww一片| 日本高清在线观看视频| 国产日韩高清在线| 国产精品久久久久久久久粉嫩av| 多男操一女视频| 福利在线一区| 日本精品视频一区二区| 热久久最新网址| 久久综合九色综合久| 国产一区激情在线| 国产精品96久久久久久| 国产无码精品视频| 99九九热只有国产精品| 精品亚洲国产视频| 18深夜在线观看免费视频| 性欧美hd调教| 午夜精品一区二区三区电影天堂| 正在播放久久| 国产黄色在线| 91网上在线视频| 亚洲一区二区三区久久| 中文字幕第三页| 在线综合亚洲| 久久久久国产视频| 在线日韩国产网站| 欧美日韩精品一区二区视频| 日韩av在线直播| 日本在线不卡一区二区| 国产一区二区三区精品在线观看| 色天天综合久久久久综合片| 欧美精品一区免费| 91黄页在线观看| 亚洲综合色在线| 精品国产一区二区三区在线| 成人欧美视频在线| 国产三级av片| 亚洲国产片色| 久久久久久久久综合| 妺妺窝人体色www聚色窝仙踪| 日韩在线视屏| 视频直播国产精品| 极品尤物一区二区| 欧美色蜜桃97| 色噜噜狠狠色综合网图区| 亚洲精品国产精品国自| 国产成人ay| 国产亚洲欧洲在线| 成人性生交大片免费看无遮挡aⅴ| 男男gay无套免费视频欧美| 亚洲精品国产福利| 中国美女乱淫免费看视频| 日韩电影不卡一区| 亚洲欧洲午夜一线一品| 一级黄色片网址| 久久国产影院| 欧美猛交ⅹxxx乱大交视频| 欧美偷拍第一页| 欧美激情五月| 97精品在线观看| 国产又大又黄视频| 可以看av的网站久久看| 国产精品欧美一区二区| 97在线公开视频| 国产成人精品午夜视频免费| 国产欧美日韩一区二区三区| 色视频在线观看福利| 久久精品亚洲一区二区三区浴池| 亚洲精品国产精品国自产| 色综合久久久久综合一本到桃花网| 亚洲图片你懂的| 精品一区二区三区无码视频| 在线天堂资源www在线污| 欧美亚洲国产一卡| 韩国三级丰满少妇高潮| 青青草久久爱| 深夜福利国产精品| 青娱乐免费在线视频| 国产日韩欧美三区| 国产玖玖精品视频| 亚洲精品国产片| 91麻豆精东视频| 资源网第一页久久久| 9765激情中文在线| 欧美日韩激情一区| 艳妇乳肉亭妇荡乳av| 成人免费在线观看av| 久久久久久久久久亚洲| 中文字幕免费高清网站| 国产精品一区久久久久| 欧洲精品久久| 黑人玩欧美人三根一起进| 欧美中文一区二区三区| 免费黄视频在线观看| 欧美人与牛zoz0性行为| 九九热最新视频//这里只有精品 | 欧美视频在线看| 五月婷婷丁香色| 美日韩黄色大片| 久久精品国产成人| 中文字幕精品无| 成人网在线播放| 国产系列第一页| 伊人久久av| 精品国产免费一区二区三区香蕉| 国产一二三四区在线| 夜夜嗨av一区二区三区网站四季av| 国产美女精品视频免费观看| 完全免费av在线播放| 久久99久久99精品免费看小说| 在线播放亚洲| 91亚洲人电影| 999在线视频| 色综合天天天天做夜夜夜夜做| 好吊操视频这里只有精品| 日韩一区二区在线| 国产成人97精品免费看片| 乱精品一区字幕二区| 最新中文字幕一区二区三区| 丰满少妇在线观看| 九九久久婷婷| 欧美一区二三区| 国产91免费在线观看| 亚洲精品免费在线| 天堂av手机在线| 久久成人综合| 国产精品入口免费视| 色就是色亚洲色图| 色综合久久88色综合天天6| 日本69式三人交| 国内成人在线| 丁香五月网久久综合| 先锋成人av| 日韩免费成人网| 欧美日韩综合一区二区| 国产精品一区二区不卡| 在线播放 亚洲| 日本成人一区二区| 麻豆传媒网站在线观看| 日本丰满少妇做爰爽爽| 9999在线精品视频| 亚洲欧美国产精品专区久久 | 国产一区二区三区网| 欧美一区二区三区四区在线| 神马精品久久| 精品国产不卡一区二区| 亚洲精品一区二区在线| 久久久久亚洲av成人毛片韩| 91在线一区二区三区| 日本a在线免费观看| 欧美三级电影在线| 欧美中文在线观看国产| 欧美女同网站| 欧美亚洲国产怡红院影院| 国产精品suv一区二区88| 精品一区二区三区在线播放视频 | 欧美视频三区在线播放| 992在线观看| 国产精品资源在线观看| 福利在线一区二区| 日韩深夜影院| 国产精品老女人精品视频| 成年人视频在线免费观看| 欧美日韩高清在线| 青娱乐国产在线| 99精品视频在线观看免费| 无码人妻丰满熟妇区五十路百度| 欧美军人男男激情gay| 91久久精品国产91性色| 182在线播放| 亚洲视频欧洲视频| 国产女人爽到高潮a毛片| 亚洲综合色婷婷| 欧美多人猛交狂配| 国产在线观看一区二区| 女人喷潮完整视频| 欧美好骚综合网| 国语精品免费视频| 日韩经典一区| 久久久久久久一区二区| 成人欧美亚洲| 精品女同一区二区| 午夜一级黄色片| 亚洲国产日韩在线一区模特| www.99热| 不卡的av在线| 日本国产一级片| 国产欧美大片| 欧美一级黄色录像片| 亚洲精品蜜桃乱晃| 91gao视频| 91精品国产66| 97超级碰在线看视频免费在线看| 在线免费观看黄| 日韩精品黄色网| 国产www免费观看| 欧美综合天天夜夜久久| 精品一区在线视频| **欧美大码日韩| 日本成人免费视频| 成人av电影免费观看| 黄色小视频免费网站| 久久一二三四| 欧美狂野激情性xxxx在线观| 日韩片欧美片| 欧美理论一区二区| 老司机在线精品视频| 91在线观看免费网站| 成人av集中营| 日韩av手机在线看| 国产精品论坛| 欧美激情免费视频| 成人福利在线观看视频| 国产一区二区日韩| 黄网站在线观看| 日韩大片在线观看视频| 亚洲精品18p| 日韩丝袜美女视频| 国产欧美日韩成人| 欧美日韩亚洲另类| 中文字幕日本人妻久久久免费 | 人人精品视频| 国产精品二区二区三区| 亚洲超碰在线观看| 114国产精品久久免费观看| 久久亚洲人体| 国产热re99久久6国产精品| 欧美gay视频| 茄子视频成人在线| 惠美惠精品网| 国产va免费精品高清在线| 黄毛片在线观看| 8x海外华人永久免费日韩内陆视频| 色婷婷视频在线观看| 欧美成人午夜激情| 手机在线免费看av| 欧美激情久久久久| 99thz桃花论族在线播放| 大型av综合网站| 欧美体内she精视频| 久久久久女人精品毛片九一| 天天综合色天天综合色h| 久久99精品久久久久久三级| 高清一区二区中文字幕| 成人国产精品一区| 国产精品视频首页| 18成人在线| 久久男人av| 欧美日韩一区二| 天天操天天干天天摸| 懂色aⅴ精品一区二区三区蜜月 | 亚洲 另类 春色 国产| 亚洲黄在线观看| 青青草在线播放| 国产亚洲精品久久久久久| yw在线观看| 久久久成人精品| 羞羞电影在线观看www| 国内揄拍国内精品| 在线最新版中文在线| 国产日产欧美a一级在线| 欧美经典影片视频网站| 粉嫩av免费一区二区三区| 色愁久久久久久| 亚洲成色www久久网站| 亚洲精品网址| 丁香六月激情婷婷| 三级久久三级久久| 性久久久久久久久久久久久久| 国产成人自拍网| 国产福利短视频| 国产精品白丝在线| 国产亚洲欧美久久久久| 色狠狠综合天天综合综合| 国产精品久久久久久久成人午夜| 精品少妇一区二区三区免费观看 | 欧美在线a视频| av午夜一区麻豆| 国产精品18在线| 亚洲一区二区在线视频| 精品成人无码久久久久久| 欧美一区二区视频网站| 日本一本草久在线中文| 久久成人在线视频| 日本欧美日韩| 91精品天堂| 国产成人1区| 日韩极品视频在线观看| 麻豆成人av在线| 国产精品无码在线| 亚洲男人的天堂在线观看| 亚洲精品中文字幕乱码三区91| 91精品国产色综合久久ai换脸| 五月激情婷婷网| 麻豆成人在线看| 日韩中文影院| 国产一区二区黄色| 永久亚洲成a人片777777| 国产精品少妇在线视频| 成人网在线免费视频| 91精品少妇一区二区三区蜜桃臀| 欧美午夜电影在线| 亚洲第一第二区| 久久精品91久久久久久再现| 欧美成人精品一区二区男人小说| 亚洲综合色av| 欧美电影免费观看高清| 男女曰b免费视频| 99视频超级精品| 欧美人妻一区二区| 欧美日本不卡视频| 大胆av不用播放器在线播放 | 免费网站在线观看视频| 久久99热这里只有精品| 四虎国产精品成人免费入口| 午夜精品久久久久| 国产综合视频在线| 成人444kkkk在线观看| 久久伊人国产| 亚洲一区二区在线看| 男女性色大片免费观看一区二区| 鲁大师私人影院在线观看| 亚洲成人免费影院| 国产黄色一区二区| 久久国产精品影视| 99久久这里有精品| 中日韩在线视频| 久久成人久久爱| 日本爱爱小视频| 欧美日韩在线播| 在线观看完整版免费| 国产精品久久久久久久久久久不卡| 亚洲人成亚洲精品| 日韩 欧美 高清| 久久精品人人做人人爽人人| 欧美a视频在线观看| 亚洲人成在线观看网站高清| 日本免费久久| 秋霞久久久久久一区二区| 日精品一区二区| 能直接看的av| 欧美日韩二区三区| 中文字幕免费高清电视剧网站在线观看 | 亚洲视频在线二区| 久久精品国产成人一区二区三区 | 成人av片网址| 在线观看一区视频| 精品人妻一区二区三区香蕉| 日韩欧美中文字幕在线播放| 韩国中文字幕2020精品| 国产精品第一视频| 欧美残忍xxxx极端| 日本在线视频播放| 亚洲成a天堂v人片| 人成在线免费视频| 国产精品日韩电影| 中文字幕人成人乱码| 国产白袜脚足j棉袜在线观看| 欧美日韩一区二区免费在线观看 | 亚洲欧美成人vr| 五月婷婷狠狠操| 日韩一区欧美小说| 亚洲精品国产精品国| 国产成人精品一区二区三区| 日韩欧美一区二区三区在线视频 | 亚洲欧美一区二区三| 国产999视频| 亚洲成av人片一区二区密柚| 香蕉视频免费网站| 色婷婷综合激情| 直接在线观看的三级网址| 精品久久久久亚洲| 久久99久久久久久久久久久| 国产在线视频你懂的| 亚洲人成伊人成综合网久久久| 国产 日韩 欧美| 欧洲黄色一级视频| 亚洲欧洲av一区二区三区久久| 欧美熟女一区二区| 国产欧美精品一区二区三区介绍 | 又紧又大又爽精品一区二区| 日韩二区三区| 4444kk亚洲人成电影在线| 欧美一级播放| 免费人成年激情视频在线观看| 亚洲人成网7777777国产| 国产午夜精品一区在线观看 | 日本一区二区欧美| 日韩最新免费不卡| 窝窝社区一区二区| 澳门黄色一级片| 亚洲一区二区在线播放相泽| 韩日视频在线| 国产精品swag| 韩国女主播成人在线观看| 四虎精品永久在线| 欧美精品videos另类日本|