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

springBoot的日志文件詳解

 更新時(shí)間:2024年06月25日 12:13:41   作者:PlLI-  
日志是程序的重要組成部分,主要可以用來(lái)定位和排查問(wèn)題,在程序中進(jìn)行自定義日志輸出的時(shí)候,也通常是借助于SLF4J框架來(lái)輸出日志,本文給大家分享springBoot的日志文件相關(guān)知識(shí),感興趣的朋友一起看看吧

日志是程序的重要組成部分,主要可以用來(lái)定位和排查問(wèn)題。除此之外,還可以用來(lái):

1. 記錄用戶的登錄日志,方便分析用戶是正常登錄還是惡意破解;

2. 記錄系統(tǒng)的操作日志,方便數(shù)據(jù)恢復(fù)和定位操作人;

3. 記錄程序執(zhí)行時(shí)間,方便優(yōu)化程序和提供數(shù)據(jù)支持;

在 springBoot 中內(nèi)置了日志框架:SLF4J+logback,這兩者的關(guān)系就類似于JDBC 和 MySQL之間,SLF4J對(duì)于日志的多種實(shí)現(xiàn)方式做了統(tǒng)一。所以在程序中進(jìn)行自定義日志輸出的時(shí)候,也通常是借助于SLF4J框架來(lái)輸出日志;

一. 自定義日志打印

1. 獲取日志對(duì)象 

 1. 每個(gè)類都有自己的日志對(duì)象,所以習(xí)慣用 private 修飾;

 2. 為了方便調(diào)用,習(xí)慣用 static 修飾;

 3. 且該日志對(duì)象不希望被修改,習(xí)慣用 final 修飾;

 4. Logger 是一個(gè)接口,無(wú)法直接 new 對(duì)象,一般借助 LoggerFactory.getLogger 方法獲取日志對(duì)象;

private static final Logger log = LoggerFactory.getLogger(類對(duì)象);

注意 Logger 對(duì)象要選擇 slf4j 包下的?。?! 

2. 使用日志對(duì)象打印日志

使用對(duì)應(yīng)方法來(lái)打印對(duì)應(yīng)層級(jí)的日志; 

        log.trace("i'm trace");     
        log.debug("i'm debug");    
        log.info("i'm info");
        log.warn("i'm warn");
        log.error("i'm error");

3. 日志格式說(shuō)明 

二. 日志級(jí)別 

日志級(jí)別可以幫助我們篩選出重要的信息,可以通過(guò)控制日志級(jí)別,來(lái)讓日志內(nèi)容更加準(zhǔn)確明了;

日志級(jí)別可以控制不同環(huán)境下,打印出不同的日志內(nèi)容,例如在開(kāi)發(fā)環(huán)境下,需要很多詳細(xì)的信息,而生產(chǎn)環(huán)境下,為了保證性能,一般就會(huì)需要較少的日志,此時(shí)就可以提供日志級(jí)別來(lái)實(shí)現(xiàn)這個(gè)需求; 

1. 日志級(jí)別的分類和使用

trace:級(jí)別最低;

debug: 調(diào)試時(shí)候的關(guān)鍵信息打??;

info:默認(rèn)的日志級(jí)別;

warn:警告,不影響使用;

error:錯(cuò)誤信息;

fatal:致命的,因?yàn)榇a異常導(dǎo)致程序退出執(zhí)行;

級(jí)別越高,能接收的信息就越少,例如設(shè)置為 warn 級(jí)別的時(shí)候,此時(shí)就只能接受 warn,error,fatal 級(jí)別的日志了。

2. 日志級(jí)別的設(shè)置

日志級(jí)別的設(shè)置可以通過(guò)配置文件來(lái)配置;

# root 設(shè)置了默認(rèn)級(jí)別
logging:
    level:
        root:error

也可以針對(duì)文件路徑來(lái)另外設(shè)置,例如將 com.example.demo 路徑下的日志級(jí)別設(shè)置為 trace:

logging:
    level:
        root:
        com:
            example:
                demo:trace

三. 日志持久化

所謂日志持久化,也就是將日志內(nèi)容保存下來(lái),因?yàn)樵谏a(chǎn)環(huán)境下,通常需要保存好日志文件,方面后續(xù)進(jìn)行追溯;

同樣是在配置文件中進(jìn)行配置,指定日志文件的存儲(chǔ)目錄和文件名;

# 日志保存路徑     絕對(duì)路徑!
# 只設(shè)置name的話,此時(shí)路徑就和項(xiàng)目的路徑是一起的
# 也可以在 name 的基礎(chǔ)上加上路徑
logging:
  file:
#    path: D:\\test\\
#    name: springboot.log
    name: D:\\test\\springboot.log

 并且存儲(chǔ)的 springboot.log日志文件是實(shí)時(shí)更新的。日志文件的最大容量是 10MB。

 四. 更加簡(jiǎn)單的實(shí)現(xiàn)日志打印

使用 @slf4j 注解,前提是要有 Lombok 框架支持; 

@slf4j 是一個(gè)類注解,表示給當(dāng)前類中添加一個(gè)叫做 log 的日志對(duì)象(這是 lombok 提供的對(duì)象名),此處的 log 對(duì)象就是 slf4j 中提供的 Logger 對(duì)象;

@RestController
@Slf4j  
public class LoggerController {
    @RequestMapping("/log")
    public String sayHi(){
        log.info("我是 log 的 info");
        log.error("我是 log 的 error");
        return "hello3";
    }
}

五. Lombok的原理

此處再簡(jiǎn)單補(bǔ)充一下 Lombok 的一些原理知識(shí):Lombok實(shí)在編譯時(shí)期起作用的;

Lombok在程序中運(yùn)行時(shí)起到的作用就是,使用注解代替,來(lái)快捷的實(shí)現(xiàn)一些語(yǔ)句。這點(diǎn)可以通過(guò) target 目錄來(lái)觀察;target 為項(xiàng)目最終執(zhí)行的代碼; 

 在 target 中,注解 @slf4j ,就自動(dòng)的轉(zhuǎn)換為構(gòu)造日志對(duì)象的語(yǔ)句了。

 Lombok 還有很多注解是經(jīng)常用到的:

1. @Getter:自動(dòng)添加 getter 方法

2. @Setter:自動(dòng)添加 setter 方法

3. @ToString:自動(dòng)添加 toString 方法

組合注解:@Data:包括 @Getter + @Setter + @ToString + @EqualsAndHashCode + @RequiredArgsConstructor + @NoArgsConstructor

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

相關(guān)文章

  • Spring 注解編程模型相關(guān)知識(shí)詳解

    Spring 注解編程模型相關(guān)知識(shí)詳解

    這篇文章主要介紹了Spring 注解編程模型相關(guān)知識(shí)詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09
  • java實(shí)現(xiàn)簡(jiǎn)單的給sql語(yǔ)句賦值的示例

    java實(shí)現(xiàn)簡(jiǎn)單的給sql語(yǔ)句賦值的示例

    這篇文章主要介紹了java實(shí)現(xiàn)簡(jiǎn)單的給sql語(yǔ)句賦值的示例,需要的朋友可以參考下
    2014-05-05
  • spring的jdbctemplate的crud的基類dao

    spring的jdbctemplate的crud的基類dao

    本文主要介紹了使用spring的jdbctemplate進(jìn)行增刪改查的基類Dao的簡(jiǎn)單寫法,需要的朋友可以參考下
    2014-02-02
  • springboot讀取application.yaml文件數(shù)據(jù)的方法

    springboot讀取application.yaml文件數(shù)據(jù)的方法

    這篇文章主要為大家詳細(xì)介紹了springboot讀取application.yaml文件數(shù)據(jù)的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • 解析Java中的Field類和Method類

    解析Java中的Field類和Method類

    這篇文章主要介紹了Java中的Field類和Method類,是Java入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-12-12
  • Spring中的Bean對(duì)象初始化詳解

    Spring中的Bean對(duì)象初始化詳解

    這篇文章主要介紹了Spring中的Bean對(duì)象初始化詳解,我們也可以根據(jù)Java語(yǔ)言的特性猜測(cè)到其很有可能是通過(guò)反射機(jī)制來(lái)完成Bean的初始化操作,接下來(lái)我們一步一步的剖析Spring對(duì)Bean的初始化操作,需要的朋友可以參考下
    2023-12-12
  • 詳解使用zxing庫(kù)生成QR-Code二維碼

    詳解使用zxing庫(kù)生成QR-Code二維碼

    這篇文章主要介紹了詳解使用zxing庫(kù)生成QR-Code二維碼的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • SpringMvc自定義攔截器(注解)代碼實(shí)例

    SpringMvc自定義攔截器(注解)代碼實(shí)例

    這篇文章主要介紹了SpringMvc自定義攔截器(注解)代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08
  • ZIP4j 壓縮與解壓的實(shí)例詳解

    ZIP4j 壓縮與解壓的實(shí)例詳解

    這篇文章主要介紹了ZIP4j 壓縮與解壓的實(shí)例詳解的相關(guān)資料,希望通過(guò)本文能幫助到大家,需要的朋友可以參考下
    2017-10-10
  • JAVA 根據(jù)身份證計(jì)算年齡的實(shí)現(xiàn)代碼

    JAVA 根據(jù)身份證計(jì)算年齡的實(shí)現(xiàn)代碼

    這篇文章主要介紹了JAVA 根據(jù)身份證計(jì)算年齡的實(shí)例代碼及java根據(jù)出生日期獲得年齡的方法,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2018-05-05

最新評(píng)論