Spring如何替換掉預設common-logging.jar
阿新 • • 發佈:2020-05-08
為什麼使用日誌列印而不是使用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對應不同框架如圖所示
我這裡引入的是轉logback的依賴
3.配置logback.xml 設定輸出的日誌
先測試一下
結果如圖 列印的日誌太長了 設定列印的日誌的格式和等級就需要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>
設定後結果如圖
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。