Spring Boot Logger詳解

在開發過程中,日誌監聽成為非常重要的一部分。Spring Boot提供了強大的日誌模塊,其中最核心的就是日誌框架。Spring Boot默認使用Logback作為框架的實現,而SLF4J是Spring Boot與業務代碼之間的橋樑。當然,Spring Boot同時也支持其他的日誌框架,比如Log4j2、Log4j等。

一、Spring Boot Logger的配置

Spring Boot的日誌輸出級別,有五種級別,分別是:TRACE、DEBUG、INFO、WARN、ERROR。在Spring Boot的日誌配置中,可以指定全局配置或是針對某個Logger單獨指定。


logging.level.root=INFO
logging.level.com.example=DEBUG
logging.level.org.springframework.web=INFO
logging.level.org.hibernate=ERROR

上述配置表示:全局日誌輸出級別為INFO,應用名稱為com.example的日誌輸出為DEBUG級別,包名為org.springframework.web下的日誌輸出為INFO級別,包名為org.hibernate下的日誌輸出為ERROR級別。

二、Spring Boot Logger的API

Logger API是SLF4J的一部分,它只是一組簡單的輸出方法,並不是直接輸出到日誌系統的。SLF4J 根據當前的日誌框架,提供了實現類接口。LoggerFactory是與具體日誌框架無關並且線程安全的類。你可以用下面的方式獲取Logger 對象。


private static final Logger logger = LoggerFactory.getLogger(XXX.class);

上述代碼表示獲取Logger對象時,XXX.class可以替換成任意一個你需要的類。如果你的應用有多個Logger對象,可以根據不同的功能需求進行命名。

三、Spring Boot Logger的使用

1、輸出debug日誌信息


logger.debug("debug日誌輸出");

當Logger的輸出級別高於等於DEBUG時,該方法才會被調用。在這個例子中,logger只會在DEBUG級別開啟時輸出信息。

2、輸出info日誌信息


logger.info("info日誌輸出");

當Logger的輸出級別高於等於INFO時,該方法才會被調用。在這個例子中,logger只會在INFO級別開啟時輸出信息。

3、輸出warn日誌信息


logger.warn("warn日誌輸出");

當Logger的輸出級別高於等於WARN時,該方法才會被調用。在這個例子中,logger只會在WARN級別開啟時輸出信息。

4、輸出error日誌信息


logger.error("error日誌輸出");

當Logger的輸出級別高於等於ERROR時,該方法才會被調用。在這個例子中,logger只會在ERROR級別開啟時輸出信息。

5、輸出參數化日誌信息


String name = "world";
logger.info("Hello, {}", name);

上述輸出結果為:Hello, world。當Logger的輸出級別高於等於INFO時,該方法才會被調用。在這個例子中,logger只會在INFO級別開啟時輸出信息。

四、Spring Boot Logger的附加功能

1、日誌文件輸出

Spring Boot允許你輸出到控制台或是文件中。下面是輸出到日誌文件中的配置方式:


logging.file=app.log

上述配置表示Spring Boot應用將日誌輸出到文件app.log。

2、控制台日誌顏色配置

在控制台輸出彩色日誌信息,可以設置以下參數:


spring.output.ansi.enabled=always

always:啟用控制台輸出色彩;never:禁用控制台輸出色彩;detect:根據情況啟用控制台輸出色彩。

3、日誌文件滾動配置

日誌文件滾動配置可以設置日誌文件的大小及時間等限制,可以按照時間或者按照大小來統計。下面是時間滾動的配置方式:


logging.file.max-history=30
logging.file.max-size=10MB
logging.file.total-size-cap=500MB
logging.file.clean-history-on-start=true

上述配置表示保留30天的日誌文件,單個日誌文件的大小為10MB,日誌文件總大小為500MB,程序啟動時會清除過期日誌文件。

4、添加自定義日誌

Spring Boot的日誌支持多種日誌框架,你可以按照以下方式添加自定義日誌框架:


@Configuration
public class MyLogConfig {

    @Bean
    public MyLog myLog(Logger logger) {
        return new MyLog(logger);
    }
}

上述代碼表示添加了一個自定義的日誌框架,MyLog使用了SLF4J的Logger接口,將Logger的實現注入到自定義的MyLog中。

總結

Spring Boot的Logger模塊提供了很好的日誌監聽和記錄功能,它是業務應用中不可或缺的一部分。通過對Spring Boot Logger的配置、API、使用以及附加功能的講解,我們相信大家已經對其有了更加深入的了解,可以在項目開發中使用它。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/246545.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-12 13:15
下一篇 2024-12-12 13:15

相關推薦

發表回復

登錄後才能評論