国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

SLF4J

Cruise_Chan / 995人閱讀

摘要:方法會調(diào)即啟動當前的,一般就是,若返回為空,則調(diào)。若存在多個日志框架,則類加載的有多個,所以是為載入。的方法會調(diào)用,若返回的大小超過,則警告。通過完成初始化,即實例化具體的賦值給內(nèi)部的,如。

SLF4J(Simple logging Facade for Java)是一個日志框架的適配器。
如果一個項目已經(jīng)使用了log4j,而你加載了Apache Active MQ——它依賴于于另外一個日志類庫logback,那么你就需要把logback也加載進來。但如果Apache Active MQ使用了SLF4J,你可以繼續(xù)使用log4j,而無需加載和維護一個新的日志框架。或者添加XXX-over-slf4j.jar可以將xxx的日志輸出轉(zhuǎn)向到slf4j,然后slf4j將日志交由真正的日志實現(xiàn)框架來輸出

幾個jar提一下:
jcl-over-slf4j 將Commons Logging API輸出轉(zhuǎn)向到slf4j輸出。
log4j-1.2-api 將log4j適配到log4j2,從而程序不用修改。
log4j-jcl 將Commons Logging API輸出轉(zhuǎn)向到log4j2輸出。

Slf4j啟動

關(guān)鍵在于slf4j-api-xxx.jar中org.slf4j.LoggerFactory:

  // org/slf4j/impl/StaticLoggerBinder.class為log4j-slf4j-impl-xxxjar中的類,所以用字符串聲明,避免具體依賴。
  private static String STATIC_LOGGER_BINDER_PATH = "org/slf4j/impl/StaticLoggerBinder.class";

  private static Set findPossibleStaticLoggerBinderPathSet() {
    // use Set instead of list in order to deal with  bug #138
    // LinkedHashSet appropriate here because it preserves insertion order during iteration
    Set staticLoggerBinderPathSet = new LinkedHashSet();
try {
//一般就是AppClassLoader
      ClassLoader loggerFactoryClassLoader = LoggerFactory.class
              .getClassLoader();
      Enumeration paths;
     //每一種類加載器加載指定的*.class文件會得到不同的Class,這里必須要保證LoggerFactory的類加載器與StaticLoggerBinder的類加載是相同的。
//ClassLoader.getSystemResources方法會調(diào)getSystemClassLoader()即啟動當前application的classloader,一般就是AppClassLoader,若返回為空,則調(diào)getBootstrapResources()。 
//若存在多個日志框架,則類加載的URL有多個,所以是Enumeration
      if (loggerFactoryClassLoader == null) {//LoggerFactory為Bootstrap Loader載入。
        paths = ClassLoader.getSystemResources(STATIC_LOGGER_BINDER_PATH);
      } else {
        paths = loggerFactoryClassLoader
                .getResources(STATIC_LOGGER_BINDER_PATH);
      }
      while (paths.hasMoreElements()) {
        URL path = (URL) paths.nextElement();
        staticLoggerBinderPathSet.add(path);
      }
    } catch (IOException ioe) {
     ......
    }
    return staticLoggerBinderPathSet;
  }

LoggerFactory的bind()方法會調(diào)用findPossibleStaticLoggerBinderPathSet(),若返回Set的大小超過1,則警告。通過StaticLoggerBinder.getSingleton()完成初始化,即實例化具體的factory賦值給內(nèi)部的ILoggerFactory,如 loggerFactory = new Log4jLoggerFactory();。
不同的日志框架有相應(yīng)的不同的xxx-slf4j-impl.jar,不同的StaticLoggerBinder.class決定了slf4j使用哪種日志框架。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/67266.html

相關(guān)文章

  • SpringBoot(三)日志

    摘要:日志消息,是換行符如果使用作為日志配置文件,還要使用功能,會有以下錯誤切換日志框架可以按照的日志適配圖,進行相關(guān)的切換的方式切換為 三、日志 1、日志框架 小張;開發(fā)一個大型系統(tǒng); 1、System.out.println();將關(guān)鍵數(shù)據(jù)打印在控制臺;去掉?寫在一個文件? 2、框架來記錄系統(tǒng)的一些運行時信息;日志框架 ; zhanglogging.jar; 3、高大上的幾個功能?異步...

    arashicage 評論0 收藏0
  • 如何配置SLF4J不同的日志實現(xiàn)

    摘要:想要看級別的信息,你需要在啟動時傳入這個系統(tǒng)屬性使用與日志現(xiàn)在我們可以試驗并更換不同的日志實現(xiàn),但你的程序代碼可以保持不變。我們要做的是用另一個流行的日志實現(xiàn)來替換掉,比如。又一次,我們必須對我們選的每一個日志實現(xiàn)做配置。 使用slf4j庫作為你的Java應(yīng)用日志API層有很多好處,這里我會展示一小部分關(guān)于如何使用和配置它的例子。 你可以把slf4j想成一個Java的接口,然后你需要實...

    bovenson 評論0 收藏0
  • Java日志那些事

    摘要:但是考慮到各不相同,所以出現(xiàn)了等日志框架。日志框架只是統(tǒng)一的,其底層的具體的日志記錄工作還是由等承擔。如何選擇和搭配日志系統(tǒng)目前來說,新應(yīng)用使用是首選,一些老系統(tǒng)中很可能使用的是等。所以若日志沖突時,使用的三方庫只需要相應(yīng)的實現(xiàn)庫即可。 日志系統(tǒng)的發(fā)展 我們?nèi)粘=佑|到的日志系統(tǒng)有很多種,log4j,JUL(jdk自帶),logback等,我們可以直接根據(jù)對象的日志API進行使用。但是考...

    GeekQiaQia 評論0 收藏0
  • LogBack入門實踐

    摘要:日志名的從開始,自動遞增就是指拋出的異常,是顯示全部,如果在中寫入數(shù)字,則表示展示多少行重點來了,上邊都是輸出源。 一、簡介 LogBack是一個日志框架,它是Log4j作者Ceki的又一個日志組件。 LogBack,Slf4j,Log4j之間的關(guān)系 slf4j是The Simple Logging Facade for Java的簡稱,是一個簡單日志門面抽象框架,它本身只提供了日志F...

    馬永翠 評論0 收藏0
  • Java 日志系列篇二 slf4

    摘要:的橋接器這個橋接器將所有日志委派給的原生實現(xiàn),直接實現(xiàn)了的接口,因此使用與的搭配也暗示了嚴格的零內(nèi)存計算溢出未完待補充 起手式 忘了什么時候聽老師說過,牛逼的公司只管定義接口,屌絲廠商實現(xiàn)接口,類似 JDBC 的實現(xiàn)便是如此,用在 slf4j, 總覺得有些類似,本來 SUN 有機會在需求產(chǎn)生之前設(shè)計一套漂亮的日志框架來一統(tǒng)天下,可惜偏偏要拖到 JDK1.4, 而這套原生的日志框架也沒有...

    maybe_009 評論0 收藏0
  • Tomcat啟動log:SLF4J: Class path contains multiple SL

    摘要:近期啟動時,看到如下輸出信息并伴隨嚴重錯誤警告打開的日志記錄,看到的錯誤信息如下唉呀媽呀腦瓜疼,腦瓜疼啊腦瓜疼于是在掙扎了一天之后,頭發(fā)都撓沒了,終于找到一個靠譜的解決方案,不得不感謝百度的強大這就是包沖突了啊啊啊啊啊 近期啟動tomcat時,看到如下輸出信息:SLF4J: Class path contains multiple SLF4J bindings.SLF4J: Found...

    Jeff 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<