中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

專門制作視頻的軟件視頻優(yōu)化軟件

專門制作視頻的軟件,視頻優(yōu)化軟件,wordpress 手機菜單欄插件,湖南微網(wǎng)站營銷前言 Slf4j SLF4J,全稱 Simple Logging Facade for Java,是一個用于Java編程語言的日志系統(tǒng)抽象層。它為多種現(xiàn)有日志框架(例如Log4j、java.util.logging等)提供了統(tǒng)一的接口, 但自身并不實現(xiàn)日志功能。 SLF4J 允許用戶在部署時…

前言

Slf4j

SLF4J,全稱 Simple Logging Facade for Java,是一個用于Java編程語言的日志系統(tǒng)抽象層。它為多種現(xiàn)有日志框架(例如Log4j、java.util.logging等)提供了統(tǒng)一的接口, 但自身并不實現(xiàn)日志功能。
SLF4J 允許用戶在部署時選擇適當?shù)娜罩編?#xff08;即日志框架),比如 Logback、Log4j 等。

Logback

Logback 是一個實現(xiàn)日志功能的庫,它由Log4j的創(chuàng)建者設(shè)計。Logback被設(shè)計成Log4j的一個卓越替代品,它具有更好的性能、自動重加載配置文件、更豐富的日志格式以及內(nèi)置日志歸檔等特點。
簡單來說,SLF4J為Java提供了一個統(tǒng)一的日志接口,而Logback是一個具體的日志庫,可以與SLF4J API結(jié)合起來使用。

注意,其它日志實現(xiàn)如log4j等結(jié)合slf4j的時候是需要橋接包,而logback是直接實現(xiàn)了slf4j。

Slf4j初始化源碼分析

slf4j在代碼中初始化一個Logger對象時,如下,調(diào)用LoggerFactory.getLogger()方法:

private final Logger logger = LoggerFactory.getLogger(this.getClass());

查看getLogger方法:

public static Logger getLogger(String name) {  // logback實現(xiàn)了slf4j的ILoggerFactory接口,關(guān)鍵也在于這個地方ILoggerFactory iLoggerFactory = getILoggerFactory();  return iLoggerFactory.getLogger(name);  
}

logback針對ILoggerFactory的實現(xiàn)類是:ch.qos.logback.classic.LoggerContext。
所以可以直接查看LoggerContext.getLogger()方法。
可以看到最終是調(diào)用到這個方法:

在這里插入圖片描述

這個地方不是配方重點,這里分析下初始化的時候如何構(gòu)造LoggerContext實例:

 ILoggerFactory iLoggerFactory = getILoggerFactory();  

通過追蹤方法調(diào)用,可以看到最終調(diào)用的是這個bind()方法(具體調(diào)用的源碼細節(jié),可以自己點進去看一下,代碼不多,不啰嗦了):

在這里插入圖片描述

    private final static void bind() {try {Set<URL> staticLoggerBinderPathSet = null;// 不檢查安卓系統(tǒng)的if (!isAndroid()) {// 這里是找到所有org/slf4j/impl/StaticLoggerBinder.class的jar路徑staticLoggerBinderPathSet = findPossibleStaticLoggerBinderPathSet();// 如果項目有多個日志框架的實現(xiàn),平常啟動項目不是會打印一些日志:Class path contains multiple SLF4J bindings.等// 就是這這個地方打印的,日志實現(xiàn)沖突reportMultipleBindingAmbiguity(staticLoggerBinderPathSet);}// 每個實現(xiàn)slf4j的日志或者橋接包都會有這個org/slf4j/impl/StaticLoggerBinder.class類StaticLoggerBinder.getSingleton();INITIALIZATION_STATE = SUCCESSFUL_INITIALIZATION;reportActualBinding(staticLoggerBinderPathSet);} catch (NoClassDefFoundError ncde) {// 下面代碼忽略了} catch (java.lang.NoSuchMethodError nsme) {} catch (Exception e) {failedBinding(e);throw new IllegalStateException("Unexpected initialization failure", e);} finally {postBindCleanUp();}}

StaticLoggerBinder.getSingleton();這個注釋里說了,每個實現(xiàn)或者橋接包都有這個類的,比如logback:

在這里插入圖片描述

這個地方也是slf4j初始化的精髓,沒有這個類就拋異常了。

而關(guān)于StaticLoggerBinder的初始化,也很平常:

在這里插入圖片描述

就是通過靜態(tài)代碼塊來初始化logback了。

http://m.risenshineclean.com/news/60346.html

相關(guān)文章:

  • wordpress創(chuàng)建知識庫seo網(wǎng)站優(yōu)化培訓要多少錢
  • 政府部門網(wǎng)站建設(shè)推廣文案
  • 檔案網(wǎng)站建設(shè)網(wǎng)頁百度廣告怎么收費標準
  • 企業(yè)網(wǎng)站建設(shè) 新聞宣傳關(guān)鍵詞有哪些
  • 分類網(wǎng)站建設(shè)國內(nèi)網(wǎng)站建設(shè)公司
  • 孕婦做兼職上哪家網(wǎng)站深圳網(wǎng)絡(luò)推廣建站
  • 網(wǎng)站建設(shè) 核對流程網(wǎng)站seo優(yōu)化服務(wù)
  • 電商類網(wǎng)站開發(fā)百度指數(shù)怎么提升
  • 網(wǎng)站開發(fā)實戰(zhàn)教程保定seo推廣公司
  • 成人大專報考條件seo 重慶
  • wordpress大數(shù)據(jù)插件搜索引擎優(yōu)化代理
  • 大學培訓中心網(wǎng)站建設(shè)系統(tǒng)清理優(yōu)化工具
  • 濟南行知網(wǎng)站建設(shè)全國唯一一個沒有疫情的城市
  • 數(shù)字中國建設(shè)峰會 官方網(wǎng)站seo引擎優(yōu)化方案
  • 網(wǎng)站設(shè)計開發(fā)中的具體步驟站長之家域名信息查詢
  • 做mg動畫賺錢網(wǎng)站小紅書seo
  • 網(wǎng)站上的圖片一般多大網(wǎng)站統(tǒng)計系統(tǒng)
  • 地方生活門戶網(wǎng)站名稱網(wǎng)站運營與維護
  • 淮北做網(wǎng)站公司百度經(jīng)驗官網(wǎng)首頁
  • 注冊公司域名后如何做網(wǎng)站愛站網(wǎng)域名查詢
  • 軟件工程分為幾個階段網(wǎng)站seo入門基礎(chǔ)教程書籍
  • 做網(wǎng)站做地區(qū)好還是全國的好處谷歌seo搜索引擎
  • 可以看任何東西的瀏覽器seo是什么車
  • 淄博建設(shè)局網(wǎng)站網(wǎng)站推廣關(guān)鍵詞工具
  • 合肥專業(yè)手機網(wǎng)站制作價格網(wǎng)站流量統(tǒng)計分析
  • 開發(fā)網(wǎng)站網(wǎng)絡(luò)公司百度在西安有分公司嗎
  • 廉政網(wǎng)站建設(shè)經(jīng)驗交流今日nba戰(zhàn)況
  • 織夢怎么查看網(wǎng)站點擊夫唯seo
  • 網(wǎng)站的系統(tǒng)建設(shè)方式有哪些內(nèi)容個人網(wǎng)頁模板
  • 青島科技網(wǎng)站建設(shè)今日小說百度搜索風云榜