欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringBoot深入了解日志的使用

 更新時(shí)間:2022年07月14日 11:10:48   作者:粉色的志明  
Spring?Boot默認(rèn)使用SLF4J+Logback?記錄日志,并提供了默認(rèn)配置,即使我們不進(jìn)行任何額外配,也可以使用SLF4J+Logback進(jìn)行日志輸出

1. 日志的作用

日志是程序的重要組成部分,在程序報(bào)錯(cuò)的時(shí)候,如果我們不看日志,是很難排查出錯(cuò)誤的,除非你真的是很有經(jīng)驗(yàn).所以日志最主要的作用就是排除和定位問(wèn)題.

日志提供的功能:

  • 記錄?戶登錄?志,?便分析?戶是正常登錄還是惡意破解?戶。
  • 記錄系統(tǒng)的操作?志,?便數(shù)據(jù)恢復(fù)和定位操作?。
  • 記錄程序的執(zhí)?時(shí)間,?便為以后優(yōu)化程序提供數(shù)據(jù)?持

2. 日志怎么用

在我們啟動(dòng) SpringBoot 項(xiàng)目的時(shí)候就會(huì)輸出日志:

3. 自定義日志打印

主要分兩個(gè)步驟:

在一個(gè)類中先獲得打印日志對(duì)象(日志框架提供的日志對(duì)象,而日志框架默認(rèn)已經(jīng)集成到 SpringBoot 里了)使用日志對(duì)象提供的方法實(shí)現(xiàn)日志的打印

3.1 得到日志對(duì)象

得到日志對(duì)象 Logger ,它來(lái)自于 slf4j,不要導(dǎo)錯(cuò)了包,在程序中獲取?志對(duì)象需要使??志?? LoggerFactory

3.2 使用日志對(duì)象提供的方法打印日志

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
@ResponseBody
public class UserController {
//1. 先得到日志對(duì)象(來(lái)自 slf4j)
    private static final Logger log =
        LoggerFactory.getLogger(UserController.class); //設(shè)置當(dāng)前的類型
    @RequestMapping("/sayhi")
    public void sayHi(){
        //2. 使用日志對(duì)象提供的打印方法進(jìn)行日志打印
        log.trace("我是 trace");
        log.debug("我是 debug");
        log.info("我是 info");
        log.warn("我是 warn");
        log.error("我是 error");
    }
}

有些沒(méi)打印,因?yàn)樗粫?huì)打印跟他同級(jí)別的或者比他級(jí)別高的日志,他這里默認(rèn)是 info 級(jí)別.

3.3 日志格式說(shuō)明

4. 日志級(jí)別

反饋一些需要的日志,并不需要把所有的都打印出來(lái)

就像是如果你是一家 2 萬(wàn)人的公司的老板,需要每天看他們的反饋信息,難道每個(gè)人都看嗎?這顯然看不完,你只需要看一些領(lǐng)頭的就行…

4.1 日志級(jí)別分類

日志級(jí)別分為:

  • trace: 微量,少許的意思(級(jí)別最低)
  • debug: 調(diào)試日志
  • info: 普通信息日志
  • warn: 警告日志
  • error: 錯(cuò)誤日志
  • fatal: 致命的日志(系統(tǒng)輸出的日志,不能自定義打印)

日志級(jí)別的順序:

越往上接收到的消息就越少。

4.2 日志級(jí)別的配置

?志級(jí)別配置只需要在配置?件中設(shè)置“logging.level”配置項(xiàng)即可:

# 設(shè)置全局的日志級(jí)別
logging.level.root=warn

# 設(shè)置局部文件夾的日志級(jí)別
logging.level.com.example.demo.UserController=trace

之前的 info 級(jí)別日志就沒(méi)打印了.

注意:當(dāng)存在局部日志級(jí)別和全局的日志級(jí)別設(shè)置時(shí),那么當(dāng)訪問(wèn)局部日志時(shí),使用的是局部日志級(jí)別.也就是 局部日志優(yōu)先級(jí) > 全局日志級(jí)別

5. 日志持久化

以上的?志都是輸出在控制臺(tái)上的,然?在?產(chǎn)環(huán)境上咱們需要將?志保存下來(lái),以便出現(xiàn)問(wèn)題之后追溯問(wèn)題,把?志保存下來(lái)的過(guò)程就叫做持久化。

日志持久化(將日志永久的保存到磁盤的某個(gè)位置)

1:在配置文件中設(shè)置日志保存的路徑,當(dāng)設(shè)置了保存路勁之后,那么日志就會(huì)自動(dòng)進(jìn)行持久化

2:在配置文件中設(shè)置日志保存的名稱,日志會(huì)自動(dòng)進(jìn)行持久化

#設(shè)置日志保存的目錄寫法一
logging.file.path=D:\\log
#設(shè)置日志保存的目錄寫法二
logging.file.path=D:/log

打開(kāi)這個(gè)文件:

# 設(shè)置日志的保存名稱
logging.file.name=D:\\log\\spring-boot.log 

6. 更簡(jiǎn)單的實(shí)現(xiàn)自定義日志的打印

6.1 準(zhǔn)備工作,添加 lombok 到項(xiàng)目中

如果你當(dāng)初沒(méi)有添加 lombok 又不想重開(kāi)項(xiàng)目,有這樣一種辦法,下載插件 EditStarters:

6.2 使用 @Slf4j 得到日志對(duì)象

import lombok.extern.slf4j.Slf4j;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
@ResponseBody
@Slf4j //替代了之前需要通過(guò) LoggerFactory.getLogger 操作
public class UserController {
//1. 先得到日志對(duì)象(來(lái)自 slf4j)
//    private static final Logger log =
//        LoggerFactory.getLogger(UserController.class); //設(shè)置當(dāng)前的類型
    @RequestMapping("/sayhi")
    public void sayHi(){
        //2. 使用日志對(duì)象提供的打印方法進(jìn)行日志打印
        log.trace("我是 trace");
        log.debug("我是 debug");
        log.info("我是 info");
        log.warn("我是 warn");
        log.error("我是 error");
    }
}

6.3 使用 log 對(duì)象自定義打印日志

.class文件,他是給我們轉(zhuǎn)換了的:

Java 程序的運(yùn)?原理:

Lombok 的作?如下圖所示:

6.4 lombok 更多注解說(shuō)明

注解作用
@Getter?動(dòng)添加 getter ?法
@Setter?動(dòng)添加 setter ?法
@ToString?動(dòng)添加 toString ?法
@EqualsAndHashCode?動(dòng)添加 equals 和 hashCode ?法
@NoArgsConstructor?動(dòng)添加?參構(gòu)造?法
@AllArgsConstructor?動(dòng)添加全屬性構(gòu)造?法,順序按照屬性的定義順序
@NonNull屬性不能為 null
@RequiredArgsConstructor?動(dòng)添加必需屬性的構(gòu)造?法,final + @NonNull 的屬性為必需

組合注解:

注解作用
@Data@Getter + @Setter + @ToString +@EqualsAndHashCode +@RequiredArgsConstructor +@NoArgsConstructor

日志注解:

注解作?
@Slf4j添加?個(gè)名為 log 的?志,使? slf4j

到此這篇關(guān)于SpringBoot深入了解日志的使用的文章就介紹到這了,更多相關(guān)SpringBoot日志內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 淺析Java如何優(yōu)雅的避免那無(wú)處不在的空指針異常

    淺析Java如何優(yōu)雅的避免那無(wú)處不在的空指針異常

    在Java編程語(yǔ)言中,NullPointerException(簡(jiǎn)稱NPE)是一種常見(jiàn)的運(yùn)行時(shí)異常,本文主要來(lái)和大家講講如何優(yōu)雅的避免這些空指針異常,需要的可以參考下
    2024-03-03
  • Spring Boot 配置隨機(jī)數(shù)的技巧代碼詳解

    Spring Boot 配置隨機(jī)數(shù)的技巧代碼詳解

    這篇文章主要介紹了Spring Boot 配置隨機(jī)數(shù)技巧,spring boot 支持在系統(tǒng)加載的時(shí)候配置隨機(jī)數(shù),具體實(shí)例代碼大家參考下本文
    2018-05-05
  • JDK8?中Arrays.sort()?排序方法詳解

    JDK8?中Arrays.sort()?排序方法詳解

    這篇文章主要介紹了JDK8?中Arrays.sort()?排序方法解讀,本文先行介紹Arrays.sort()中影響排序方式的幾個(gè)因素,影響因素主要為數(shù)組類型、數(shù)組大小,結(jié)合閾值對(duì)排序方式進(jìn)行選擇,需要的朋友可以參考下
    2023-05-05
  • Java接收text/event-stream格式數(shù)據(jù)的詳細(xì)代碼

    Java接收text/event-stream格式數(shù)據(jù)的詳細(xì)代碼

    這篇文章主要介紹了java接收text/event-stream格式數(shù)據(jù),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-07-07
  • Java中的Pair詳細(xì)

    Java中的Pair詳細(xì)

    這篇文章主要介紹Java中的很有意思的Pair,下面文章會(huì)以Pair用法展開(kāi),感興趣的小伙伴可以參考下面文章的具體內(nèi)容
    2021-10-10
  • Spring Boot應(yīng)用配置常用相關(guān)視圖解析器詳解

    Spring Boot應(yīng)用配置常用相關(guān)視圖解析器詳解

    這篇文章主要給大家介紹了關(guān)于Spring Boot應(yīng)用配置常用相關(guān)視圖解析器的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-12-12
  • Spring中@Value注解獲取不到配置值問(wèn)題及解決

    Spring中@Value注解獲取不到配置值問(wèn)題及解決

    這篇文章主要介紹了Spring中@Value注解獲取不到配置值問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • Spring使用支付寶掃碼支付

    Spring使用支付寶掃碼支付

    這篇文章主要為大家詳細(xì)介紹了Spring使用支付寶掃碼支付的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • 深入理解Java設(shè)計(jì)模式之備忘錄模式

    深入理解Java設(shè)計(jì)模式之備忘錄模式

    這篇文章主要介紹了JAVA設(shè)計(jì)模式之備忘錄模式的的相關(guān)資料,文中示例代碼非常詳細(xì),供大家參考和學(xué)習(xí),感興趣的朋友可以了解
    2021-11-11
  • Java并發(fā)包工具類CountDownLatch的應(yīng)用詳解

    Java并發(fā)包工具類CountDownLatch的應(yīng)用詳解

    CountDownLatch是Java并發(fā)包中非常實(shí)用的一個(gè)工具類,它可以幫助我們實(shí)現(xiàn)線程之間的同步和協(xié)作。本文主要介紹了CountDownLatch的應(yīng)用場(chǎng)景及最佳實(shí)踐,希望對(duì)大家有所幫助
    2023-04-04

最新評(píng)論