log4j的MDC,DNC配置以及應用

2021-09-01 22:32:32 字數 647 閱讀 5384

一、背景

人在it江湖,免不了要排查bug,查線上伺服器日誌,可浩如煙海的日誌裡面,如果沒有乙個唯一key將同乙個執行緒列印的日誌串聯起來,那可大大不妙。如何做到這一點呢。我們的主角,log4j的mdc,ndc出來了

二、實現思路以及關鍵**

1、用***或者filter將所有**的入口攔截住,且在***的裡面,業務方法執行之前,寫如下**:

// 日誌增加唯一標識

long starttime = systemtimer.currenttimemillis();

ndc.push(starttime + "_" + thread.currentthread().getid());

在***的業務方法執行完畢之後,寫如下**:

// 釋放記憶體,清除標記

ndc.pop();

ndc.remove();

ndc.clear();

2、log4j.xml配置

conversionpattern之前新增 [%x]

例如:[1393425548560_1][2014-02-26 22:39:22  warn com.qunar.fax.biz.send.sendfaxbizimpl:96] 生成tif檔案內容為空!

log4j日誌系統 Log4j

1.1 log4j的三大核心元件 1.2 loggers 記錄器 1.4 layouts 布局 org.apache.log4j.htmllayout 以html 形式布局 org.apache.log4j.patternlayout 可以靈活地指定布局模式 org.apache.log4j.lay...

常用log4j配置

常用log4j配置,一般可以採用兩種方式,properties和.xml,下面舉兩個簡單的例子 一 log4j.properties 設定org.zblog域對應的級別info,debug,warn,error和輸出地a1,a2 log4j.category.org.zblog error,a1 l...

常用log4j配置

常用log4j配置,一般可以採用兩種方式,properties和.xml,下面舉兩個簡單的例子 一 log4j.properties 設定.zblog域對應的級別info,debug,warn,error和輸出地a1,a2 log4j.category.zblog error,a1 log4j.ca...