中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

項目引入log4j而不是logback代碼的原因

發布時間:2020-11-02 15:57:39 來源:億速云 閱讀:171 作者:Leah 欄目:開發技術

本篇文章給大家分享的是有關項目引入log4j而不是logback代碼的原因,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

什么是slf4j

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

為什么使用slf4j

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

slf4j的解耦

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

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

項目引入log4j而不是logback代碼的原因

看看依賴

<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:

項目引入log4j而不是logback代碼的原因

如果還原依賴:

<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:

項目引入log4j而不是logback代碼的原因

反正是就要引入這些包, 但是slf4j-api已經在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 鼠標右鍵

項目引入log4j而不是logback代碼的原因

項目引入log4j而不是logback代碼的原因

以上就是項目引入log4j而不是logback代碼的原因,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

塔河县| 吕梁市| 河南省| 五河县| 桐梓县| 珠海市| 开化县| 丽江市| 罗源县| 亚东县| 襄城县| 崇信县| 福安市| 濮阳县| 来宾市| 秦安县| 屯门区| 建昌县| 磐石市| 蓬莱市| 华宁县| 师宗县| 治县。| 舞阳县| 天台县| 塔河县| 英吉沙县| 石柱| 修武县| 海兴县| 禄丰县| 汕尾市| 鄂托克旗| 曲松县| 开平市| 启东市| 四子王旗| 石泉县| 二连浩特市| 志丹县| 新巴尔虎右旗|