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

springBoot的日志文件詳解

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

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

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

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

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

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

一. 自定義日志打印

1. 獲取日志對象 

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

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

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

 4. Logger 是一個接口,無法直接 new 對象,一般借助 LoggerFactory.getLogger 方法獲取日志對象;

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

注意 Logger 對象要選擇 slf4j 包下的!??! 

2. 使用日志對象打印日志

使用對應(yīng)方法來打印對應(yīng)層級的日志; 

        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. 日志格式說明 

二. 日志級別 

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

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

1. 日志級別的分類和使用

trace:級別最低;

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

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

warn:警告,不影響使用;

error:錯誤信息;

fatal:致命的,因為代碼異常導(dǎo)致程序退出執(zhí)行;

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

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

日志級別的設(shè)置可以通過配置文件來配置;

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

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

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

三. 日志持久化

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

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

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

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

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

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

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

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

五. Lombok的原理

此處再簡單補充一下 Lombok 的一些原理知識:Lombok實在編譯時期起作用的;

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

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

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

1. @Getter:自動添加 getter 方法

2. @Setter:自動添加 setter 方法

3. @ToString:自動添加 toString 方法

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

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

相關(guān)文章

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

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

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

    java實現(xiàn)簡單的給sql語句賦值的示例

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

    spring的jdbctemplate的crud的基類dao

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

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

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

    解析Java中的Field類和Method類

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

    Spring中的Bean對象初始化詳解

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

    詳解使用zxing庫生成QR-Code二維碼

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

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

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

    ZIP4j 壓縮與解壓的實例詳解

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

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

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

最新評論