1. 程式人生 > 程式設計 >Spring如何替換掉預設common-logging.jar

Spring如何替換掉預設common-logging.jar

為什麼使用日誌列印而不是使用System.out.println()?

System.out是一個io流 如果使用它列印大批量資料 會佔用大量的資源

spring預設使用common-logging列印日誌資訊 如果我們想替換掉它 使用其他的日誌工具 分為如下幾步

1.排除專案對common-logging的依賴

<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-orm</artifactId>
  <exclusions>
    <exclusion>
      <groupId>commons-logging</groupId>
      <artifactId>commons-logging</artifactId>
    </exclusion>
  </exclusions>
</dependency>

因為我所用的專案中common-logging在此依賴之下 所以需要將其排除

2.引入取代common-logging的日誌列印工具的依賴

<!--其他日誌工具的中間轉換包-->
<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>jcl-over-slf4j</artifactId>
</dependency>
<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-api</artifactId>
  <version>1.7.7</version>
</dependency>
<dependency>
  <groupId>ch.qos.logback</groupId>
  <artifactId>logback-classic</artifactId>
  <version>1.2.3</version>
</dependency>

SLF4J對應不同框架如圖所示

Spring如何替換掉預設common-logging.jar

我這裡引入的是轉logback的依賴

3.配置logback.xml 設定輸出的日誌

先測試一下

Spring如何替換掉預設common-logging.jar

結果如圖 列印的日誌太長了 設定列印的日誌的格式和等級就需要logback.xml了

內容如圖:(logback.xml在rescouce目錄下)

<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="true"> <!-- 指定日誌輸出的位置 -->
  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <encoder> <!-- 日誌輸出的格式 --> <!-- 按照順序分別是:時間、日誌級別、執行緒名稱、列印日誌的類、日誌主體 內容、換行 -->
      <pattern>[%d{HH:mm:ss.SSS}] [%-5level] [%thread] [%logger] [%msg]%n</pattern>
    </encoder>
  </appender>
  <!-- 設定全域性日誌級別。日誌級別按順序分別是:DEBUG、INFO、WARN、ERROR --> <!-- 指定任何一個日誌級別都只打印當前級別和後面級別的日誌。 -->
  <root level="INFO"> <!-- 指定列印日誌的 appender,這裡通過“STDOUT”引用了前面配置的 appender -->
    <appender-ref ref="STDOUT"/>
  </root> <!-- 根據特殊需求指定區域性日誌級別 -->
  <logger name="com.atguigu.crowd.mapper" level="DEBUG"/>
</configuration>

設定後結果如圖

Spring如何替換掉預設common-logging.jar

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