最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

項目為什么引入log4j而不是logback代碼

 更新時間:2020年10月30日 11:45:49   作者:圣金巫靈  
這篇文章主要介紹了項目為什么引入log4j而不是logback代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

什么是slf4j

SLF4J,即簡單日志門面(Simple Logging Facade for Java),不是具體的日志解決方案,它只服務于各種各樣的日志系統(tǒng)。按照官方的說法,SLF4J是一個用于日志系統(tǒng)的簡單Facade,允許最終用戶在部署其應用時使用其所希望的日志System。

為什么使用slf4j

上面已經(jīng)介紹了slf4j,那么至于為什么使用它。Slf4j可以看成是接口,那么既然是接口,實現(xiàn)在哪里呢?實現(xiàn)就是基于你自己的系統(tǒng)需要引入什么日志。我這里使用了log4j作為slf4j的實現(xiàn)。那么就可以通過slf4j來輸出日志。

slf4j的解耦

試想一下,如果你使用了第三方的類庫,那么比如別人使用了java.util.logging.Logger這個類庫系統(tǒng),那么你的項目使用的是log4j日志系統(tǒng),你是不是要重新引入2種日志系統(tǒng)呢?那現(xiàn)在就有人為了解決這個問題,就提供了slf4j這個日志接口類庫。你只要使用slf4j就可以了,至于你系統(tǒng)使用什么類庫作為我的實現(xiàn),我不管。那么這樣問題就解決了,這也符合java的面向對象編程。

代碼部分,由于sprintboot 默認使用logback,如果想用log4j, 需要排除掉logback的jar,引入log4j 的jar

看看依賴

<dependencies>
    <!--slf4j和log4j日志交換包-->
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-log4j12</artifactId>
    </dependency>
    <!--log4j包-->
    <dependency>
      <groupId>log4j</groupId>
      <artifactId>log4j</artifactId>
      <version>1.2.17</version>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
      <!--排除logback包 -->
      <exclusions>
        <exclusion>
          <groupId>ch.qos.logback</groupId>
          <artifactId>logback-classic</artifactId>
        </exclusion>
        <exclusion>
          <groupId>ch.qos.logback</groupId>
          <artifactId>logback-core</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
      <scope>test</scope>
      <exclusions>
        <exclusion>
          <groupId>org.junit.vintage</groupId>
          <artifactId>junit-vintage-engine</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
  </dependencies>

測試,生效的是log4j:

如果還原依賴:

<dependencies>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
      <scope>test</scope>
      <exclusions>
        <exclusion>
          <groupId>org.junit.vintage</groupId>
          <artifactId>junit-vintage-engine</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
  </dependencies>

測試結果,看到用的是logback:

反正是就要引入這些包, 但是slf4j-api已經(jīng)在springboot-web里了。所以我的代碼中沒有再引入。

//slf4j包
<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-api</artifactId>
  <version>1.8.0-beta2</version>
</dependency>
//slf4j和log4j日志交換包
<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-log4j12</artifactId>
  <version>1.8.0-beta2</version>
</dependency>
//log4j包
<dependency>
  <groupId>log4j</groupId>
  <artifactId>log4j</artifactId>
  <version>1.2.17</version><dependency>

最后講一下用intellij看依賴:

在pom.xml 鼠標右鍵

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • JDK源碼Enum類原理及代碼實例解析

    JDK源碼Enum類原理及代碼實例解析

    這篇文章主要介紹了JDK源碼Enum類原理及代碼實例解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-11-11
  • Java操作集合工具類Collections使用詳解

    Java操作集合工具類Collections使用詳解

    這篇文章主要介紹了java操作集合工具類Collections使用詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-12-12
  • SpringBoot打印Banner的實現(xiàn)示例

    SpringBoot打印Banner的實現(xiàn)示例

    本文主要介紹了SpringBoot啟動Banner的實現(xiàn)原理和打印流程,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2025-01-01
  • windows上nacos自啟動的三種方法小結

    windows上nacos自啟動的三種方法小結

    本文主要給大家介紹了windows上nacos自啟動的三種方法,借助WinSW.exe添加到服務列表,修改nacos啟動配置以及以開機"啟動"方式——啟動Nacos的startup.cmd這三種方法,文中通過圖文講解的非常詳細,需要的朋友可以參考下
    2023-12-12
  • Struts2之Action接收請求參數(shù)和攔截器詳解

    Struts2之Action接收請求參數(shù)和攔截器詳解

    這篇文章主要介紹了Struts2之Action接收請求參數(shù)和攔截器詳解,非常具有實用價值,需要的朋友可以參考下
    2017-05-05
  • SpringBoot使用WebJars統(tǒng)一管理靜態(tài)資源的方法

    SpringBoot使用WebJars統(tǒng)一管理靜態(tài)資源的方法

    這篇文章主要介紹了SpringBoot使用WebJars統(tǒng)一管理靜態(tài)資源的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-12-12
  • idea 多模塊項目依賴父工程class找不到問題的方法

    idea 多模塊項目依賴父工程class找不到問題的方法

    這篇文章主要介紹了idea 多模塊項目依賴父工程class找不到問題的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • java協(xié)程框架quasar和kotlin中的協(xié)程對比分析

    java協(xié)程框架quasar和kotlin中的協(xié)程對比分析

    這篇文章主要為大家介紹了java協(xié)程框架quasar和kotlin兩個協(xié)程對比分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多基本
    2022-02-02
  • 通過ibatis解決sql注入問題

    通過ibatis解決sql注入問題

    這篇文章主要介紹了通過ibatis解決sql注入問題,需要的朋友可以參考下
    2017-09-09
  • 談談Java中try-catch-finally中的return語句

    談談Java中try-catch-finally中的return語句

    我們知道return語句用在某一個方法中,一是用于返回函數(shù)的執(zhí)行結果,二是用于返回值為void類型的函數(shù)中,僅僅是一個return語句(return ;),此時用于結束方法的執(zhí)行,也即此return后的語句將不會被執(zhí)行,當然,這種情況下return語句后不能再有其它的語句了
    2016-01-01

最新評論

玛纳斯县| 栾川县| 博野县| 宜君县| 汤原县| 文登市| 全椒县| 江口县| 长泰县| 新民市| 尚义县| 洛隆县| 大化| 天水市| 吐鲁番市| 海安县| 临西县| 嵩明县| 祁东县| 仙居县| 洛浦县| 叙永县| 新巴尔虎右旗| 从江县| 工布江达县| 营口市| 南江县| 上杭县| 加查县| 滁州市| 安多县| 汤阴县| 延庆县| 荣成市| 漾濞| 抚州市| 易门县| 海兴县| 沈丘县| 彭水| 汤原县|