logback原始碼閱讀 根據原始碼學擴充套件點 七

2022-03-17 05:41:06 字數 2492 閱讀 2106

原始碼:點選跳轉

1.xml定義

<?

xml version="1.0" encoding="utf-8"

?>

<

configuration

>

<

property

name

="charset"

value

="utf-8"

/>

<

name

class

>

<

encoder

>

<

pattern

>%p|%d|%t|%logger:%line%n %m%n%n

pattern

>

<

charset

>$

charset

>

encoder

>

>

<

root

level

="info"

>

<

ref/>

root

>

configuration

>

2.實現類

@slf4j

public

/*** 可以做一些初始化操作

*/@override

public

void

start()

@override

protected

void

super

}public

static

class dboutputstream extends

outputstream

public

void write(byte b) throws

ioexception

string message=new

string(b);

system.out.println(message);

//插入db

} }

}

<

name

class

>

<

encoder

>

<

pattern

>

%p|%d|%t|%logger:%line%n %m%n%n

pattern

>

<

charset

>$

charset

>

encoder

>

>

標紅部分都是logback定義好的 可選的有 原始碼處:點選跳轉

比如我們增加乙個traceid用於鏈路追蹤

1.定義convert實現類

@slf4j

public

class threadsharingidgeneratormessageconvert extends

classicconverter

}if(!stringutil.isnullorempty(armsutils.gettraceid()))

return "";

}}

2.xml配置

<?

xml version="1.0" encoding="utf-8"

?>

<

configuration

>

<

property

name

="charset"

value

="utf-8"

/>

<

conversionrule

conversionword

="tradeid"

converterclass

="cn.wine.ms.common.armslog.threadsharingidgeneratormessageconvert"

/>

<

name

class

>

<

encoder

>

<

pattern

>%tradeid|%p|%d|%t|%logger:%line%n %m%n%n

pattern

>

<

charset

>$

charset

>

encoder

>

>

<

root

level

="info"

>

<

ref/>

root

>

configuration

>

效果請見:點選跳轉

logback原始碼閱讀 Appender 四

下面我們舉例看其中 乙個如果我們有定製化需求可以參考實現定製 呼叫時機在解析標籤處 分別呼叫start 和end 啟動worker public void start else if this.queuesize 1 else this.addinfo setting discardingthres...

《原始碼閱讀》原始碼閱讀技巧,原始碼閱讀工具

檢視某個類的完整繼承關係 選中類的名稱,然後按f4 quick type hierarchy quick type hierarchy可以顯示出類的繼承結構,包括它的父類和子類 supertype hierarchy supertype hierarchy可以顯示出類的繼承和實現結構,包括它的父類和...

原始碼閱讀 Glide原始碼閱讀之with方法(一)

前言 本篇基於4.8.0版本 原始碼閱讀 glide原始碼閱讀之with方法 一 原始碼閱讀 glide原始碼閱讀之load方法 二 原始碼閱讀 glide原始碼閱讀之into方法 三 大多數情況下,我們使用glide 就一句 但是這一句 裡面蘊含著成噸的 with方法有以下幾個過載方法 publi...