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

當(dāng)前位置: 首頁(yè) > news >正文

武漢市二手房交易合同備案在那個(gè)網(wǎng)站上做呀如何讓網(wǎng)站快速收錄

武漢市二手房交易合同備案在那個(gè)網(wǎng)站上做呀,如何讓網(wǎng)站快速收錄,互聯(lián)網(wǎng)營(yíng)銷(xiāo)的方法,網(wǎng)站字體標(biāo)準(zhǔn)我們?cè)谑褂?Spring5 的過(guò)程中會(huì)出現(xiàn)這樣的現(xiàn)像,就是 Spring5 內(nèi)部代碼打印的日志和我們自己的業(yè)務(wù)代碼打印日志使用的不是統(tǒng)一日志實(shí)現(xiàn),尤其是在項(xiàng)目啟動(dòng)的時(shí)候,Spring5 的內(nèi)部日志使用的是 log4j2,但是業(yè)務(wù)代碼打印使用的可能是 …

我們?cè)谑褂?Spring5 的過(guò)程中會(huì)出現(xiàn)這樣的現(xiàn)像,就是 Spring5 內(nèi)部代碼打印的日志和我們自己的業(yè)務(wù)代碼打印日志使用的不是統(tǒng)一日志實(shí)現(xiàn),尤其是在項(xiàng)目啟動(dòng)的時(shí)候,Spring5 的內(nèi)部日志使用的是 log4j2,但是業(yè)務(wù)代碼打印使用的可能是 logback ,log4j1 或者 其他日志實(shí)現(xiàn)

一、Spring4 采用日志是 commons-logging

二、Spring5 內(nèi)部日志

1.Spring5 內(nèi)部日志原理


Spring5 自己在?commons-logging 基礎(chǔ)上進(jìn)行修改,將修改完的代碼單獨(dú)封裝為一個(gè) jar 包,Spring5 內(nèi)部就使用這個(gè)jar,我們可以注意一下當(dāng)我們導(dǎo)入 Spring5 的相關(guān) jar 包的時(shí)候,maven會(huì)為我們自動(dòng)依賴一個(gè) spring-jcl 的jar包,這就是那個(gè)jar包。

?

?

?可以看出這這兩 jar 包的包名都起的一模一樣,只是LogFactory的實(shí)現(xiàn)是Spring5自己實(shí)現(xiàn)的。

2. Spring5 日志關(guān)鍵源碼分析

org.apache.commons.logging.LogFactory#getLog(java.lang.String)

	/*** Convenience method to return a named logger.* @param name logical name of the <code>Log</code> instance to be returned*/public static Log getLog(String name) {return LogAdapter.createLog(name);}

org.apache.commons.logging.LogAdapter#createLog

    private static final String LOG4J_SPI = "org.apache.logging.log4j.spi.ExtendedLogger";private static final String LOG4J_SLF4J_PROVIDER =         "org.apache.logging.slf4j.SLF4JProvider";private static final String SLF4J_SPI = "org.slf4j.spi.LocationAwareLogger";private static final String SLF4J_API = "org.slf4j.Logger";private static final LogApi logApi;static {
//LOG4J_SPI = "org.apache.logging.log4j.spi.ExtendedLogger"在Log4j2包log4j-api中
//LOG4J_SLF4J_PROVIDER = 
//     "org.apache.logging.slf4j.SLF4JProvider"在Log4j2橋接器包log4j-to-slf4j中
//SLF4J_SPI = "org.slf4j.spi.LocationAwareLogger" 在slf4j包 slf4j-api 中
//SLF4J_API = "org.slf4j.Logger" 在slf4j包 slf4j-api 中//判斷是否導(dǎo)入了 log4j2包 log4j-apiif (isPresent(LOG4J_SPI)) {if (//判斷是否導(dǎo)入了 Log4j2 橋接器包log4j-to-slf4jisPresent(LOG4J_SLF4J_PROVIDER) &&//判斷是否導(dǎo)入了 slf4j包 slf4j-apiisPresent(SLF4J_SPI)) {// log4j-to-slf4j bridge -> we'll rather go with the SLF4J SPI;// however, we still prefer Log4j over the plain SLF4J API since// the latter does not have location awareness support.logApi = LogApi.SLF4J_LAL;}else {// Use Log4j 2.x directly, including location awareness supportlogApi = LogApi.LOG4J;}}else if (isPresent(SLF4J_SPI)) {// Full SLF4J SPI including location awareness supportlogApi = LogApi.SLF4J_LAL;}else if (isPresent(SLF4J_API)) {// Minimal SLF4J API without location awareness supportlogApi = LogApi.SLF4J;}else {// java.util.logging as defaultlogApi = LogApi.JUL;}}// LOG4J  采用 log4j2的 日志實(shí)現(xiàn)// SLF4J_LAL 采用 slf4j  Slf4jLocationAwareLog Full SLF4J SPI 
//including location awareness support// SLF4J 采用 slf4j  Slf4jLog  Minimal SLF4J API without 
//location awareness supportprivate enum LogApi {LOG4J, SLF4J_LAL, SLF4J, JUL}public static Log createLog(String name) {switch (logApi) {case LOG4J:return Log4jAdapter.createLog(name);case SLF4J_LAL:return Slf4jAdapter.createLocationAwareLog(name);case SLF4J:return Slf4jAdapter.createLog(name);default:// Defensively use lazy-initializing adapter class here as well since the// java.logging module is not present by default on JDK 9. We are requiring// its presence if neither Log4j nor SLF4J is available; however, in the// case of Log4j or SLF4J, we are trying to prevent early initialization// of the JavaUtilLog adapter - e.g. by a JVM in debug mode - when eagerly// trying to parse the bytecode for all the cases of this switch clause.return JavaUtilAdapter.createLog(name);}
}

http://www.risenshineclean.com/news/48952.html

相關(guān)文章:

  • 網(wǎng)站制作 牛商網(wǎng)外鏈查詢工具
  • 手把手教做網(wǎng)站網(wǎng)站優(yōu)化策略
  • 做京東網(wǎng)站需要哪些手續(xù)費(fèi)企業(yè)推廣app
  • l網(wǎng)站建設(shè)線上營(yíng)銷(xiāo)手段
  • 國(guó)外效果超炫網(wǎng)站北京seo優(yōu)化診斷
  • 河北網(wǎng)站建設(shè)排名優(yōu)化哪家專業(yè)
  • 網(wǎng)站怎樣免費(fèi)推廣網(wǎng)絡(luò)營(yíng)銷(xiāo)專業(yè)課程
  • 杭州裝飾網(wǎng)站建設(shè)互聯(lián)網(wǎng)營(yíng)銷(xiāo)的方法
  • 有什么做動(dòng)畫(huà)的網(wǎng)站seo的英文全稱是什么
  • 男生做網(wǎng)站編輯全球搜是什么公司
  • wordpress 插件 kf5谷歌關(guān)鍵詞優(yōu)化怎么做
  • wex5做視頻網(wǎng)站廣東疫情最新數(shù)據(jù)
  • 太原整站優(yōu)化搜索優(yōu)化軟件
  • 網(wǎng)站cname解析seo排名優(yōu)化培訓(xùn)網(wǎng)站
  • 百度seo優(yōu)化公司旺道網(wǎng)站排名優(yōu)化
  • python怎么做專門(mén)的手機(jī)網(wǎng)站百度免費(fèi)網(wǎng)站制作
  • 微信企業(yè)網(wǎng)站文件外鏈
  • 好看免費(fèi)的ppt模板下載做百度seo
  • 商務(wù)型企業(yè)網(wǎng)站建設(shè)近期的重大新聞
  • 樂(lè)清網(wǎng)站建設(shè)費(fèi)用網(wǎng)上培訓(xùn)機(jī)構(gòu)
  • 網(wǎng)站加密傳輸怎么做搜索引擎優(yōu)化需要多少錢(qián)
  • 瑞麗網(wǎng)站建設(shè)百度網(wǎng)站排名優(yōu)化價(jià)格
  • 大連哪家公司做網(wǎng)站網(wǎng)絡(luò)推廣的調(diào)整和優(yōu)化
  • 網(wǎng)站建設(shè)銷(xiāo)售發(fā)展前景seo百家論壇
  • 商城網(wǎng)站 價(jià)格濟(jì)寧百度推廣價(jià)格
  • 做網(wǎng)站前端后端ui什么意思谷歌優(yōu)化排名怎么做
  • 廣東省城鄉(xiāng)建設(shè)和管理委員會(huì)網(wǎng)站谷歌瀏覽器下載電腦版
  • 家居網(wǎng)站源碼軟文推送
  • 購(gòu)買(mǎi)網(wǎng)站服務(wù)如何做支出seo是什么崗位簡(jiǎn)稱
  • 想學(xué)網(wǎng)站建設(shè)開(kāi)發(fā)代運(yùn)營(yíng)一般收費(fèi)