Spring Boot 2.x基礎教程:使用tinylog記錄日誌

程式猿DD發表於2022-02-15

tinylog簡介

tinylog,與其他各種tiny開頭的東西一樣,是一個輕量級的開源日誌解決方案。它本身只包含兩個JAR檔案(一個用於API,另一個用於實現),沒有任何外部依賴關係。兩個JAR檔案的總大小隻有178KB。

雖然是一個輕量級級別方案,但我們常用的基本日誌管理功能都非常完備,它擁有與其他熱門日誌框架類似的API設計、多種可配置的日誌輸出選項、效能方面也是非常的出彩(這是官方給出的Benchmark)。

今天我們就來學習一下,如何在Spring Boot中使用tinylog記錄日誌。

整合tinylog

通過之前Spring Boot 2.x基礎教程:使用log4j2記錄日誌 一文的學習,回憶一下,整合其他日誌框架,是不是可以總結為這樣幾步:

  1. 排除Spring Boot預設日誌框架依賴
  2. 引入要使用的日誌框架依賴
  3. 加入新日誌框架的配置檔案

好了,我們就按這個步驟來實戰一下:

第一步:排除Spring Boot預設日誌框架依賴

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <exclusions>
            <exclusion>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-logging</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
</dependencies>

第二步:引入tinylog的依賴

<properties>
    <tinylog.version>2.4.1</tinylog.version>
</properties>

<dependencies>
    <dependency>
        <groupId>org.tinylog</groupId>
        <artifactId>tinylog-api</artifactId>
        <version>${tinylog.version}</version>
    </dependency>
    <dependency>
        <groupId>org.tinylog</groupId>
        <artifactId>tinylog-impl</artifactId>
        <version>${tinylog.version}</version>
    </dependency>
    <dependency>
        <groupId>org.tinylog</groupId>
        <artifactId>slf4j-tinylog</artifactId>
        <version>${tinylog.version}</version>
    </dependency>
    <dependency>
        <groupId>org.tinylog</groupId>
        <artifactId>jcl-tinylog</artifactId>
        <version>${tinylog.version}</version>
    </dependency>
    <dependency>
        <groupId>org.tinylog</groupId>
        <artifactId>log4j1.2-api</artifactId>
        <version>${tinylog.version}</version>
    </dependency>

</dependencies>

測試與驗證

到這裡,基本整合已經完成了。我們不著急去對tinylog做詳細配置,先驗證下到這裡是否都已經正確。跟之前的日誌整合例子一樣,寫個主類列印下各個級別的日誌。

@Slf4j
@SpringBootApplication
public class Chapter83Application {

    public static void main(String[] args) {
        SpringApplication.run(Chapter83Application.class, args);

        log.error("Hello World");
        log.warn("Hello World");
        log.info("Hello World");
        log.debug("Hello World");
        log.trace("Hello World");
    }

}

這裡用了lombok的@Slf4j,如果還不瞭解的建議讀一下這篇:Lombok:讓JAVA程式碼更優雅

執行一下,從控制檯可以看到輸出內容如下:

通過debug,我們可以看到此時的log已經是TinylogLogger

第三步:加入tinylog的配置檔案

通過上一步,我們雖然已經完成了整合,但是上面的格式,是你想要的嗎?加入配置調整一下!

在resources目錄下建立檔案:tinylog.properties

加入下面的配置:

writer=console
writer.format={date: HH:mm:ss.SSS} {level}: {message}

重新執行測試,控制檯輸出是不是好看一些了

更多配置,比如:檔案輸出、級別控制等這裡就不詳細說了,大家可以檢視官方文件,基本上與其他框架都是類似的,很容易配置。

好了,今天的學習就到這裡!如果您學習過程中遇到困難,可以加入我們超高質量的Spring技術交流群 ,參與交流與討論,更好的學習與進步!更多Spring Boot教程可以點選直達! ,歡迎收藏與轉發支援!

程式碼示例

本文的完整工程可以檢視下面倉庫中2.x目錄下的chapter8-3工程:

如果您覺得本文不錯,歡迎Star支援,您的關注是我堅持的動力!

歡迎關注我的公眾號:程式猿DD。第一時間瞭解前沿行業訊息、分享深度技術乾貨、獲取優質學習資源

相關文章