log4j over slf4j工作原理詳解

2022-06-17 12:36:10 字數 865 閱讀 4212

摘自: 

置頂2023年07月26日 17:19:39

更多個人分類:

slf4j

特別需要指出的是slf4j採用的是動態繫結具體日誌框架的方式,根據classpath目錄下放置的繫結jar包來實現繫結,常見繫結jar包如下:

具體用法:使用log4j-over-slf4j取代log4j,這樣log4j介面輸出的日誌就會通過log4j-over-slf4j路由到slf4j上,這樣即使系統(包含使用的第三方jar庫,比如dubbo)都可以將日誌最終路由到slf4j上,進而集中輸出。

本文就以log4j-over-slf4j這個jar庫為例來說明這其中的原理:

這個裡面使用的是迷惑戰術,按照log4j庫的目錄排布放置幾個相關類(比如logger等),這樣系統中使用log4j的**編譯就不會出錯,但是這些**logger內部實現時卻將日誌悄悄**到了slf4j相關介面,相關部分**如下:

public void debug(object message)

public void info(object message, throwable t)

下面將揭開廬山真面目:

protected logger slf4jlogger;  --org.apache.log4j.category類屬性,該屬性就是org.slf4j.logger型別了,到此相信大家已經知道了繫結類的工作原理。

void differentiatedlog(marker marker, string fqcn, int level, object message, throwable t)

else }}

log4j over slf4j工作原理詳解

slf4j作為乙個服務很多日誌框架的門店或者抽象,一些相關外掛程式使用了設計模式中的門面模式以及 模式,我們可以slf4j這個框架很容易就切換具體的日誌框架,比如logback log4j等,還能將使用log4j日誌框架輸出的日誌路由到slf4j上 通過org.slf4j log4j over sl...

log4j日誌系統 Log4j

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

slf4j結合log4j使用

在pom檔案中引入需要的jar包 org.slf4jgroupid slf4j apiartifactid 1.7.25version dependency org.slf4jgroupid jcl over slf4jartifactid 1.7.25version runtimescope de...