日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

org.SLF4J

發布時間:2023/12/10 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 org.SLF4J 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
SLF4J不是具體的日志解決方案,它只服務于各種各樣的日志系統。按照官方的說法,SLF4J是一個用于日志系統的簡單Facade,允許最終用戶在部署其應用時使用其所希望的日志系統。

  實際上,SLF4J所提供的核心API是一些接口以及一個LoggerFactory的工廠類。從某種程度上,SLF4J有點類似JDBC,不過比JDBC更簡單,在JDBC中,你需要指定驅動程序,而在使用SLF4J的時候,不需要在代碼中或配置文件中指定你打算使用那個具體的日志系統。如同使用JDBC基本不用考慮具體數據庫一樣,SLF4J提供了統一的記錄日志的接口,只要按照其提供的方法記錄即可,最終日志的格式、記錄級別、輸出方式等通過具體日志系統的配置來實現,因此可以在應用中靈活切換日志系統。

1、什么情況可以使用

  如果你開發的是類庫或者嵌入式組件,那么就應該考慮采用SLF4J,因為不可能影響最終用戶選擇哪種日志系統。在另一方面,如果是一個簡單或者獨立的應用,確定只有一種日志系統,那么就沒有使用SLF4J的必要。假設你打算將你使用log4j的產品賣給要求使用JDK 1.4 Logging的用戶時,面對成千上萬的log4j調用的修改,相信這絕對不是一件輕松的事情。但是如果開始便使用SLF4J,那么這種轉換將是非常輕松的事情。

2、舉例

  (1)代碼

private static final Logger AV_SEARCH_LOGGER = LoggerFactory.getLogger("ieFlightLog");

try{.....

}catch (Exception e) {
??????????? if (e instanceof AvNoRoutingException) {
??????????????? if (AV_SEARCH_LOGGER.isWarnEnabled()) {
??????????????????? AV_SEARCH_LOGGER.warn(".....", e);
??????????????? }

    }

}

(2)使用SLF4J提供的simple log

  將以下jar包加入到項目中,然后執行

  slf4j-api-1.5.2.jar

  slf4j-simple-1.5.2.jar

  最終輸出:

  32 [main] INFO Wombat - Today is Wed Sep 10 14:50:57 CST 2008, Temperature set to null. Old temperature was 10.

  32 [main] INFO Wombat - Today is Wed Sep 10 14:50:57 CST 2008, Temperature set to 10. Old temperature was 60.

  32 [main] WARN Wombat - Temperature(60) has risen above 50 degrees.

  (3)使用SLF4J提供的simple log

  將以下jar包加入到項目中,然后執行

  slf4j-api-1.5.2.jar

  slf4j-jdk14-1.5.2.jar

  最終輸出:

  2008-9-10 15:01:20 Wombat setTemperature

  信息: Today is Wed Sep 10 15:01:20 CST 2008, Temperature set to null. Old temperature was 10.

  2008-9-10 15:01:20 Wombat setTemperature

  信息: Today is Wed Sep 10 15:01:20 CST 2008, Temperature set to 10. Old temperature was 60.

  2008-9-10 15:01:20 Wombat setTemperature

  警告: Temperature(60) has risen above 50 degrees.

  (4)配置很簡單吧

  從以上事例可以看出,配置SLF4J使用那種日志系統是非常簡單的一件事,只要將與你打算使用的日志系統對應的jar包加入到項目中,SLF4J就會自動選擇使用你加入的那種日志系統。這種方法被稱之為靜態綁定。當然,該日志系統的相關類庫是不能少,例如,如果你打算使用log4j,那么還需要log4j的類庫,可能還有配置配置log4j.properties。

  3、格式化日志

  SLF4J還提供了格式化日志的功能,如事例中的語句:

  logger.info("Today is {}, Temperature set to {}. Old temperature was {}.", objs);

  4、日志系統綁定原理

  在應用中,通過LoggerFactory類的靜態getLogger()獲取logger。通過查看該類的代碼可以看出,最終是通過StaticLoggerBinder.SINGLETON.getLoggerFactory()方法獲取LoggerFactory然后,在通過該具體的LoggerFactory來獲取logger的。類org.slf4j.impl.StaticLoggerBinder并不在slf4j-api-1.5.2.jar包中,仔細查看每個與具體日志系統對應的jar包,就會發現,相應的jar包都有一個org.slf4j.impl.StaticLoggerBinder的實現,不同的實現返回與該日志系統對應的LoggerFactory,因此就實現了所謂的靜態綁定,達到只要選取不同jar包就能簡單靈活配置的目的。

總結

以上是生活随笔為你收集整理的org.SLF4J的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。