日志架構
日志架構中,經常出現的slf4j、log4j、logback、slf4j-log4j、log4j-over-slf4j等等,讓人混淆。為此,特意查找整理了一下,盜貼個圖先:
上圖中:
- 接口:将所有日志實作适配到了一起,用統一的接口調用
- 實作:目前主流的日志實作
- 舊日志到slf4j的擴充卡:如果使用了slf4j,但是隻想用一種實作,想把log4j的日志體系也從logback輸出,這個是很有用的
- slf4j到實作的擴充卡:如果想制定slf4j的具體實作,需要這些包
slf4j + logback
slf4j: slf4j是一個日志系統的封裝,對外提供統一的API,不提供日志具體實作。
logback:和log4j同為日志的一種具體實作。
dependency:
- slf4j-api (slf4j接口)
- logback-classic (logback服務于slf4j的”驅動”)
- logback-core (logback日志實作)
如果系統有依賴log4j日志體系,想統一對接到logback,則需要依賴:
- log4j-over-slf4j
同理,如果是slf4j+log4j組合是怎樣呢?
dependency:
- slf4j-api (slf4j接口)
- slf4j-log4j (log4j 服務于slf4j的”驅動”)
- log4j (log4j 日志實作)
結合上段中的日志架構圖,各層次比較清晰了,是不是很簡單。