最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot深入了解日志的使用

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

1. 日志的作用

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

日志提供的功能:

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

2. 日志怎么用

在我們啟動 SpringBoot 項目的時候就會輸出日志:

3. 自定義日志打印

主要分兩個步驟:

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

3.1 得到日志對象

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

3.2 使用日志對象提供的方法打印日志

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. 先得到日志對象(來自 slf4j)
    private static final Logger log =
        LoggerFactory.getLogger(UserController.class); //設(shè)置當前的類型
    @RequestMapping("/sayhi")
    public void sayHi(){
        //2. 使用日志對象提供的打印方法進行日志打印
        log.trace("我是 trace");
        log.debug("我是 debug");
        log.info("我是 info");
        log.warn("我是 warn");
        log.error("我是 error");
    }
}

有些沒打印,因為他只會打印跟他同級別的或者比他級別高的日志,他這里默認是 info 級別.

3.3 日志格式說明

4. 日志級別

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

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

4.1 日志級別分類

日志級別分為:

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

日志級別的順序:

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

4.2 日志級別的配置

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

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

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

之前的 info 級別日志就沒打印了.

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

5. 日志持久化

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

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

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

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

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

打開這個文件:

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

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

6.1 準備工作,添加 lombok 到項目中

如果你當初沒有添加 lombok 又不想重開項目,有這樣一種辦法,下載插件 EditStarters:

6.2 使用 @Slf4j 得到日志對象

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 //替代了之前需要通過 LoggerFactory.getLogger 操作
public class UserController {
//1. 先得到日志對象(來自 slf4j)
//    private static final Logger log =
//        LoggerFactory.getLogger(UserController.class); //設(shè)置當前的類型
    @RequestMapping("/sayhi")
    public void sayHi(){
        //2. 使用日志對象提供的打印方法進行日志打印
        log.trace("我是 trace");
        log.debug("我是 debug");
        log.info("我是 info");
        log.warn("我是 warn");
        log.error("我是 error");
    }
}

6.3 使用 log 對象自定義打印日志

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

Java 程序的運?原理:

Lombok 的作?如下圖所示:

6.4 lombok 更多注解說明

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

組合注解:

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

日志注解:

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

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

相關(guān)文章

  • Java service層獲取HttpServletRequest工具類的方法

    Java service層獲取HttpServletRequest工具類的方法

    今天小編就為大家分享一篇關(guān)于Java service層獲取HttpServletRequest工具類的方法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • 淺談Spring自定義注解從入門到精通

    淺談Spring自定義注解從入門到精通

    這篇文章主要介紹了淺談Spring自定義注解從入門到精通,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧
    2019-09-09
  • java8 Stream流逐行處理文本文件

    java8 Stream流逐行處理文本文件

    這篇文章主要介紹了java8 Stream流逐行處理文本文件的相關(guān)資料,文中講解非常細致,代碼幫助大家更好的理解和學(xué)習,感興趣的朋友可以了解下
    2020-07-07
  • Java編程通過list接口實現(xiàn)數(shù)據(jù)的增刪改查代碼示例

    Java編程通過list接口實現(xiàn)數(shù)據(jù)的增刪改查代碼示例

    這篇文章是介紹Java編程基礎(chǔ)方面的內(nèi)容,涉及l(fā)ist接口的操作,通過list接口實現(xiàn)對數(shù)據(jù)的增刪改查的相關(guān)代碼,具有一定參考價值,需要的朋友可以了解下。
    2017-10-10
  • Nacos1.4.0 Windows10單機模式啟動和集群啟動過程解析

    Nacos1.4.0 Windows10單機模式啟動和集群啟動過程解析

    這篇文章主要介紹了Nacos1.4.0 Windows10單機模式啟動和集群啟動,第一次使用nacos,廢話不多說,記錄下自己啟動Nacos遇到的坑,感興趣的朋友跟隨小編一起看看吧
    2023-10-10
  • Postman form-data、x-www-form-urlencoded的區(qū)別及說明

    Postman form-data、x-www-form-urlencoded的區(qū)別及說明

    這篇文章主要介紹了Postman form-data、x-www-form-urlencoded的區(qū)別及說明,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-03-03
  • Zookeeper全局唯一ID生成方案解析

    Zookeeper全局唯一ID生成方案解析

    這篇文章主要介紹了Zookeeper全局唯一ID生成方案解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友可以參考下
    2020-12-12
  • 詳解Java中“==”與equals()的區(qū)別

    詳解Java中“==”與equals()的區(qū)別

    這篇文章主要介紹了詳解Java中“==”與equals()的區(qū)別的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • Spring?Boot配置文件的語法規(guī)則詳解(properties和yml)

    Spring?Boot配置文件的語法規(guī)則詳解(properties和yml)

    這篇文章主要介紹了Spring?Boot配置文件的語法規(guī)則,主要介紹兩種配置文件的語法和格式,properties和yml,對于配置文件也有獨立的文件夾存放,主要用來存放一些需要經(jīng)過變動的數(shù)據(jù)(變量值),感興趣的朋友跟隨小編一起看看吧
    2024-07-07
  • Java多線程產(chǎn)生死鎖的必要條件

    Java多線程產(chǎn)生死鎖的必要條件

    今天小編就為大家分享一篇關(guān)于Java多線程產(chǎn)生死鎖的必要條件,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-01-01

最新評論

玉环县| 新巴尔虎左旗| 海城市| 景德镇市| 高州市| 开封市| 扬州市| 陇南市| 万年县| 朝阳市| 黑河市| 克拉玛依市| SHOW| 华宁县| 吉首市| 南城县| 平遥县| 吉林省| 稻城县| 黔江区| 五河县| 长春市| 盐边县| 吕梁市| 建昌县| 出国| 孝感市| 启东市| 乐业县| 安丘市| 郴州市| 赤水市| 祁连县| 龙胜| 海口市| 苏尼特右旗| 米易县| 壤塘县| 邵武市| 离岛区| 通山县|