java日志框架與日志系統


日志框架:提供日志調用的接口,實際的日志輸出委托給日志系統實現。

  • JCL(Jakarta Commons Logging):比較流行的日志框架,很多框架都依賴JCL,例如Spring等。
  • SLF4j:提供新的API,初衷是配合Logback使用,但同時兼容Log4j。

日志系統:負責輸出日志

  • Log4j:較早的日志系統,可以單獨使用,也可配合日志框架JCL使用
  • Logback:Log4j的替代產品,需要配合日志框架SLF4j使用
  • JUL(java.util.logging):JDK提供的日志系統,較混亂,不常用

日志系統使用方式

日志框架 日志系統 說明
-- log4j log4j可單獨使用,不推薦
JCL log4j log4j配合JCL使用
SLF4j logback logback配合SLF4j使用
SLF4j (SLF4j-Log4j12) + log4j log4j配合SLF4j使用,但需要使用SLF4j-Log4j12做橋接
SLF4j + JCL-over-SLF4j logback 使原來使用JCL+log4j的系統能使用logback輸出日志
SLF4j + JCL-over-SLF4j SLF4j-log4j12 + Log4j 比較混亂的用法,框架使用SLF4j,但日志使用Log4j,同時兼容原來的JCL接口。這種使用方式多是由於復雜的包依賴,而每個包中使用了不同日志框架
SLF4j + JCL-over-SLF4j + log4j-over-slf4j SLF4j-log4j12 + log4j 更奇葩的用法,在上面的基礎上還要兼容某些包直接使用log4j的場景

說明

  • JCL-over-SLF4j是兼容JCL接口並使用SLF4j日志框架的一個兼容框架,依賴SLF4j,但不能與JCL共存
  • SLF4j-Log4j12是為了能使Log4j工作於SLF4j環境而存在的一個兼容框架,與logback同作為日志系統,不能共存
  • log4j-over-slf4j是為了使用SLF4j框架並兼容直接使用log4j的場景


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM