SLF4J

為什么要使用SLF4J而不是Log4J

SLF4J不同于其他日志類庫(kù),與其它有很大的不同。SLF4J(Simple logging Facade for Java)不是一個(gè)真正的日志實(shí)現(xiàn),而是一個(gè)抽象層( abstraction layer),它允許你在后臺(tái)使用任意一個(gè)日志類庫(kù)。SLF4J使你的代碼獨(dú)立于任意一個(gè)特定的日志API,這是一個(gè)對(duì)于開發(fā)API的開發(fā)者很好的思想。

還有一個(gè)SLF4J API的特性,占位符(place holder),在代碼中表示為“{}”的特性。占位符是一個(gè)非常類似于在String的format()方法中的%s,因?yàn)樗鼤?huì)在運(yùn)行時(shí)被某個(gè)提供的實(shí)際字符串所替換。這不僅降低了你代碼中字符串連接次數(shù),而且還節(jié)省了新建的String對(duì)象。

在你的開源或內(nèi)部類庫(kù)中使用SLF4J會(huì)使得它獨(dú)立于任何一個(gè)特定的日志實(shí)現(xiàn),這意味著不需要管理多個(gè)日志配置或者多個(gè)日志類庫(kù),你的客戶端會(huì)很感激這點(diǎn)。SLF4J提供了基于占位符的日志方法,這通過去除檢查isDebugEnabled(), isInfoEnabled()等等,提高了代碼可讀性。通過使用SLF4J的日志方法,你可以延遲構(gòu)建日志信息(Srting)的開銷,直到你真正需要,這對(duì)于內(nèi)存和CPU都是高效的。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 每一個(gè)Java程序員都知道日志對(duì)于任何一個(gè)Java應(yīng)用程序,尤其是服務(wù)端程序是至關(guān)重要的,而很多程序員也已經(jīng)熟悉各...
    七弦桐語閱讀 17,995評(píng)論 0 12
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,590評(píng)論 19 139
  • 本文轉(zhuǎn)自云棲社區(qū)-點(diǎn)擊可以查看原文 1 基本介紹 每一個(gè)Java程序員都知道日志對(duì)于任何一個(gè)Java應(yīng)用程序,尤其...
    小孩真笨閱讀 4,604評(píng)論 0 0
  • 寫Java也有一段時(shí)間了,一直都有用slf4j log4j輸出日志的習(xí)慣。但是始終都是抱著“拿來主義”的態(tài)度,復(fù)制...
    Minimumy閱讀 1,468評(píng)論 1 7
  • 3 slf4j 3.1 簡(jiǎn)介 與commons-logging相同,slf4j也是一個(gè)通用的日志接口,在程序中與其...
    賈博巖閱讀 2,894評(píng)論 0 7

友情鏈接更多精彩內(nèi)容