Java開發手冊之異常日誌(二) 日誌規約

2021-07-30 12:04:57 字數 1058 閱讀 5080

【強制】應用中不可直接使用日誌系統 (log 4 j 、 logback) 中的 api ,而應依賴使用日誌框架slf 4 j 中的 api ,使用門面模式的日誌框架,有利於維護和各個類的日誌處理方式統一。

import org.slf4j.logger;

import org.slf4j.logge***ctory;

private static final logger logger = logge***ctory.getlogger(abc.class);

【強制】日誌檔案推薦至少儲存 15 天,因為有些異常具備以「周」為頻次發生的特點。

【強制】對 trace / debug / info 級別的日誌輸出,必須使用條件輸出形式或者使用佔位符的方式。

說明: logger . debug( 」 processing trade with id : 」 + id + 」 symbol : 」 + symbol);

如果日誌級別是 warn ,上述日誌不會列印,但是會執行字串拼接操作,如果 symbol 是物件,

會執行 tostring() 方法,浪費了系統資源,執行了上述操作,最終日誌卻沒有列印。

正例: ( 條件 )

if (logger.isdebugenabled())

正例: ( 佔位符 )

logger.debug(「processing trade with id: {} symbol : {} 「, id, symbol);

【強制】避免重複列印日誌,浪費磁碟空間,務必在 log 4 j . xml 中設定 additivity = false 。

正例:

【強制】異常資訊應該包括兩類資訊:案發現場資訊和異常堆疊資訊。如果不處理,那麼往上拋。

正例: logger.error(各類引數或者物件 tostring + 「_」 + e.getmessage(), e);

【推薦】可以使用 warn 日誌級別來記錄使用者輸入引數錯誤的情況,避免使用者投訴時,無所適從。注意日誌輸出的級別, error 級別只記錄系統邏輯出錯、異常等重要的錯誤資訊。如非必要,請不要在此場景打出 error 級別。

Kafka日誌儲存解析(二)日誌索引

每個日誌分段檔案對應了兩個索引檔案,主要用來提高查詢訊息的效率。如上圖 kafka中的索引檔案屬於稀疏索引,不是所有的訊息都有對應的索引項。每當寫入一定量 由broker端引數log.index.interval.bytes指定,預設是4kb 的訊息時,偏移量索引檔案和時間戳索引檔案分別增加乙個偏移...

Raft 演算法詳解(二)日誌複製

在 raft 演算法中,副本資料是以日誌的形式存在的,領導者接收到來自客戶端寫請求後,處 理寫請求的過程就是乙個複製和提交日誌項的過程。那 raft 是如何複製日誌的呢?又如何實現日誌的一致的呢?這些內容是 raft 中非常核心 的內容,首先,咱 們先來理解日誌,這是你掌握如何複製日誌 實現日誌一致...

賣卡記之第二日

由於早晨5點半才睡,中午才起床洗澡整理。今天遇到熟人若干 黨俊 胡瑩 燁林 駱瑩瑩 劉典典等,賣卡一張。今天出乎預料,業績比前一天居然還要好,賣得比較火。前後銷售額達到4000以上,我們粗劣估算,我們搶了華大超市以及附近營業點的移動卡業務大概有2000左右的利潤,雖然我們賺得不多,但是打破了壟斷,我...