国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【JavaEE】Spring Boot - 日志文件

這篇具有很好參考價值的文章主要介紹了【JavaEE】Spring Boot - 日志文件。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

【JavaEE】Spring Boot 開發(fā)要點總結(jié)(3)

【JavaEE】Spring Boot - 日志文件,JavaEE,java-ee,spring boot,java

【JavaEE】Spring Boot 開發(fā)要點總結(jié)(3)

1. 日志有什么作用

寫代碼不是概率事件,bug的出現(xiàn)必然是有原因的,而日志的主要作用就是,排查和定位問題!

  • 而日志的生成就是隨著程序的進(jìn)行和一步步生成的,不說全部過程都記錄得清清楚楚,至少重要的點和環(huán)節(jié)或者一些異常情況都有記錄
  • 而通過日志的 “前后邏輯分析、類型級別、日志內(nèi)容信息” ,就可以定位和排查了
  • 就比如我們之前寫普通 java 代碼在控制臺打印的信息和調(diào)試頁面的信息差不多,都是讓我們知道程序執(zhí)行的過程怎么樣~

除此之外,我們還能實現(xiàn)以下功能:

  1. 記錄用戶登錄日志,方便分析用戶是正常登錄還是惡意破解用戶
  2. 記錄系統(tǒng)的操作日志,方便重要數(shù)據(jù)恢復(fù)和定位操作人
  3. 記錄程序的執(zhí)行時間,方便為以后優(yōu)化程序提供數(shù)據(jù)支持

例如,啟動項目的時候,控制臺顯示的就是,日志,標(biāo)準(zhǔn)的日志:

【JavaEE】Spring Boot - 日志文件,JavaEE,java-ee,spring boot,java

而且這些標(biāo)準(zhǔn)的日志,都是有固定格式的~

三個問題:

  1. Spring Boot 內(nèi)置了日志框架,才能按照固定格式輸出日志, 這些信息代表什么呢?
    • 格式并不需要開發(fā)者去設(shè)計
  2. 默認(rèn)情況下,項目輸出的日志并非開發(fā)者自定義和打印的,Spring框架在運行時會自動打印一些日志, 如何自定義打印日志呢?
    • 格式有了,內(nèi)容和打印時機(jī)還是需要自定義的
  3. 日志默認(rèn)是打印在控制臺, 如何實現(xiàn)持久化呢?
    • 控制臺的,重新運行就會清空,日志得保存下來,才有意義,后續(xù)才能查閱

2. 日志格式

【JavaEE】Spring Boot - 日志文件,JavaEE,java-ee,spring boot,java

這就是日志框架提供的格式,提供的信息還是很全面的!

2.1 日志框架原理

Spring Boot之所以可以打印日志,是因為內(nèi)置了兩個日志框架:

  1. slf4j

    【JavaEE】Spring Boot - 日志文件,JavaEE,java-ee,spring boot,java

  2. logback

為什么需要兩個呢?

  1. slf4j 是開發(fā)者使用和調(diào)用的框架
  2. logback 最底層實現(xiàn)日志相關(guān)操作的框架
  • 其實這里的思想跟 JQuery 和 JDBC 的思想差不多
    • 多種瀏覽器統(tǒng)一滿足JQuery,開發(fā)者統(tǒng)一地使用開發(fā)API,瀏覽器怎么識別代碼展示出來的與開發(fā)者無關(guān)
    • 多種數(shù)據(jù)庫統(tǒng)一滿足JDBC,開發(fā)者統(tǒng)一地使用開發(fā)API,底層怎么實現(xiàn)數(shù)據(jù)持久化與開發(fā)者無關(guān)
  • 一種 低耦合高內(nèi)聚 的分工

而這里,多種底層實現(xiàn)日志相關(guān)操作的框架統(tǒng)一支持slf4j,開發(fā)者統(tǒng)一地使用開發(fā)API,底層怎么實現(xiàn)日志相關(guān)操作的與開發(fā)者無關(guān)

  • logback就是其中一種底層框架

后面設(shè)置日志級別,通過日志級別篩選 …等操作,底層由框架幫我們?nèi)崿F(xiàn),對于開發(fā)者,這些“坐享其成”的事太多了,我們要專心開發(fā),不必可以他們的存在

3. 日志的打印

3.1 System.out.println

這是我們普通java程序的日志打印方式,效果平庸,信息很少:

【JavaEE】Spring Boot - 日志文件,JavaEE,java-ee,spring boot,java

運行后,瀏覽器訪問:

【JavaEE】Spring Boot - 日志文件,JavaEE,java-ee,spring boot,java

查看控制臺:

【JavaEE】Spring Boot - 日志文件,JavaEE,java-ee,spring boot,java

如果要打印時間:

【JavaEE】Spring Boot - 日志文件,JavaEE,java-ee,spring boot,java

效果:

【JavaEE】Spring Boot - 日志文件,JavaEE,java-ee,spring boot,java

其他的信息獲取和組織起來就更加麻煩了~

  • 而自己去加日志級別沒有作用,你只是拼接了字符串罷了
  • 這樣就檢索不了

并且對于后面第三個持久化的問題,sout的日志無法持久化保存

3.2 使用日志框架

程序能夠啟動并且能打印日志,就什么這個框架已經(jīng)引入進(jìn)來了,只需要以下操作:

  1. 獲取日志工廠
    • 生成一個日志制造器

【JavaEE】Spring Boot - 日志文件,JavaEE,java-ee,spring boot,java

一定要選擇,slf4j框架的類

【JavaEE】Spring Boot - 日志文件,JavaEE,java-ee,spring boot,java

  • 這里就涉及到了工廠模式,通過工廠類LoggerFactory去獲取實例對象
    • 能猜到,傳過去的類對象,就是對應(yīng)“包名+類名”的那一段信息
  1. 調(diào)用方法進(jìn)行打印

【JavaEE】Spring Boot - 日志文件,JavaEE,java-ee,spring boot,java

【JavaEE】Spring Boot - 日志文件,JavaEE,java-ee,spring boot,java

訪問一下試試:

【JavaEE】Spring Boot - 日志文件,JavaEE,java-ee,spring boot,java

可見,通過框架提供的API,就可以有效地設(shè)置日志級別,方法名對應(yīng)的就是日志級別~

  • 并且,日志格式跟系統(tǒng)日志一模一樣~

但是,為什么我們打印了五條,卻只顯示三條呢?

  • 這就是對日志級別的篩選操作

3.3 日志級別

  1. trace:微量、少許、痕跡,級別最低
  2. debug:調(diào)試日志級別
  3. info:普通日志級別
  4. warn:警告日志級別
  5. error:錯誤日志級別
  6. fatal:致命日志級別
    • 只有系統(tǒng)崩潰時才會輸出的日志級別,并沒有fatal( )方法
    • 級別最高

從上到下,日志級別遞增!

而系統(tǒng)如何篩選日志的呢?

  • 可見,我們啥也沒設(shè)置的情況下,顯示閾值是info,只顯示跟info同級或者比info級別高的日志 => ≥info
  • 這也是一種篩選~

【JavaEE】Spring Boot - 日志文件,JavaEE,java-ee,spring boot,java

而我們?nèi)ズY選的話,就是根據(jù)這個原理,去設(shè)置默認(rèn)顯示閾值

3.3.1 設(shè)置默認(rèn)日志顯示閾值

【JavaEE】Spring Boot - 日志文件,JavaEE,java-ee,spring boot,java

效果:

【JavaEE】Spring Boot - 日志文件,JavaEE,java-ee,spring boot,java

  • 看似沒有啟動成功,其實是因為trace和debug的日志太多了!
  • 所以我們篩查的應(yīng)該是≥info,≥warn,≥error的

【JavaEE】Spring Boot - 日志文件,JavaEE,java-ee,spring boot,java

效果:

【JavaEE】Spring Boot - 日志文件,JavaEE,java-ee,spring boot,java

  • info不顯示了

【JavaEE】Spring Boot - 日志文件,JavaEE,java-ee,spring boot,java

  • 顯示 ≥warn 的日志了~

日志級別的作用就是:過濾信息

  • 將不需要的日志屏蔽掉

根據(jù)其他信息進(jìn)行篩選排查的話,之后需要用到就去學(xué)~

3.3.2 針對一個目錄設(shè)置日志顯示閾值

【JavaEE】Spring Boot - 日志文件,JavaEE,java-ee,spring boot,java

要求:對于controller目錄,顯示閾值為info;對于model目錄,顯示閾值為error

【JavaEE】Spring Boot - 日志文件,JavaEE,java-ee,spring boot,java

  • logging.level.[路徑]
    • 代表設(shè)置該路徑下以及其子目錄的日志顯示閾值
    • 其實設(shè)置默認(rèn)日志顯示閾值也是這個原理,代表設(shè)置root目錄下的所有…
  • 不過,越細(xì)致的優(yōu)先級越高

【JavaEE】Spring Boot - 日志文件,JavaEE,java-ee,spring boot,java

效果:

【JavaEE】Spring Boot - 日志文件,JavaEE,java-ee,spring boot,java

4. 日志持久化

日志持久化,就是把日志保存到文件里,也就是保存到電腦磁盤里,后續(xù)在文件里去觀看,可以通過文本編輯器進(jìn)行一些查找查看~

配置項不懂的,可以去官方文檔中解惑:Common Application Properties (spring.io)

  • 以下內(nèi)容只涉及部分,要想了解更多,閱讀文檔!

4.1 設(shè)置日志保存路徑

不需要設(shè)置“要不要保存”的選項,因為設(shè)置了后還是需要給一個保存路徑,還不如直接設(shè)置路徑,就代表了兩種含義

  1. 需要保存日志
  2. 保存日志的地址

【JavaEE】Spring Boot - 日志文件,JavaEE,java-ee,spring boot,java

  • 保存到D盤的馬庫目錄里:

控制臺:

【JavaEE】Spring Boot - 日志文件,JavaEE,java-ee,spring boot,java

文件目錄:

【JavaEE】Spring Boot - 日志文件,JavaEE,java-ee,spring boot,java

  • 默認(rèn)名為spring,類型為.log文件

  • 并且目錄不存在會自動創(chuàng)建

    【JavaEE】Spring Boot - 日志文件,JavaEE,java-ee,spring boot,java

    這個屬性不能設(shè)置文件名

【JavaEE】Spring Boot - 日志文件,JavaEE,java-ee,spring boot,java

多按幾下瀏覽器刷新:

【JavaEE】Spring Boot - 日志文件,JavaEE,java-ee,spring boot,java

以追加的方式更新:

【JavaEE】Spring Boot - 日志文件,JavaEE,java-ee,spring boot,java

4.2 設(shè)置日志打印格式

【JavaEE】Spring Boot - 日志文件,JavaEE,java-ee,spring boot,java

比如這個毫秒,我不喜歡,我要把他去掉:

【JavaEE】Spring Boot - 日志文件,JavaEE,java-ee,spring boot,java

效果:

【JavaEE】Spring Boot - 日志文件,JavaEE,java-ee,spring boot,java

日志文件里:
【JavaEE】Spring Boot - 日志文件,JavaEE,java-ee,spring boot,java

并不會更新之前的內(nèi)容,而是往后去追加~

補(bǔ)充:
【JavaEE】Spring Boot - 日志文件,JavaEE,java-ee,spring boot,java

  • 刪除幾條信息后按,Ctrl s
    【JavaEE】Spring Boot - 日志文件,JavaEE,java-ee,spring boot,java

log文件修改后不能保存,只能另存為或者選擇替換原本的文件

4.3 設(shè)置日志文件名

【JavaEE】Spring Boot - 日志文件,JavaEE,java-ee,spring boot,java

【JavaEE】Spring Boot - 日志文件,JavaEE,java-ee,spring boot,java

好像不符合預(yù)期猜想,key.log在哪:

【JavaEE】Spring Boot - 日志文件,JavaEE,java-ee,spring boot,java

原來在這兒~

所以path和name不能搭配~

  • 這樣生成的日志文件有兩個~

而name對應(yīng)的被認(rèn)為是相對路徑,就保存到項目目錄里了

【JavaEE】Spring Boot - 日志文件,JavaEE,java-ee,spring boot,java

  • 改為具體位置~

【JavaEE】Spring Boot - 日志文件,JavaEE,java-ee,spring boot,java

  • perfect!

【JavaEE】Spring Boot - 日志文件,JavaEE,java-ee,spring boot,java

4.4 面臨的問題

  1. 追加的方式去寫到文件里的,那么一直這樣下去,會不會文件太大,磁盤炸了?!
  2. 文件太大,查看不方便,打開特別慢

給文件設(shè)置極限大小

  • 日志框架里是有默認(rèn)的大小限制的

【JavaEE】Spring Boot - 日志文件,JavaEE,java-ee,spring boot,java

  • 如果不進(jìn)行配置,日志文件達(dá)到一定的大小,就會重新創(chuàng)建一個新文件,在原文件名加上后綴(比如時間),后續(xù)的日志追加到這個新文件里

當(dāng)然,這些效果的實現(xiàn),不止這一種做法,也還有更多的效果可以實現(xiàn),可以去官方文檔中閱讀學(xué)習(xí),之后遇到需要實現(xiàn)的效果,專門去查即可

5. lombok框架

Lombok雖然不是IDEA的“兄弟產(chǎn)品”,但是卻能擺在一開始選擇依賴的頁面里:
【JavaEE】Spring Boot - 日志文件,JavaEE,java-ee,spring boot,java

說明這并不是等閑之輩,很多公司都在用

而它出現(xiàn)就是為了快速開發(fā)java項目的!

  • 當(dāng)然每個框架都是這樣的
  • 那么Lombok究竟好用在哪呢?

5.1 節(jié)省重復(fù)簡單代碼的書寫

【JavaEE】Spring Boot - 日志文件,JavaEE,java-ee,spring boot,java

對于這些老朋友方法,我們再熟悉不過了,這些代碼的特點就是,必要但是簡單并且屬性如果比較多,代碼就會特別長

而Lombok框架提供的注解,很好的解決了這個問題:

  • 注解幫助我們實現(xiàn)很多邏輯,甚至控制我們的操作顯示,功能很強(qiáng)大
  • 它不像一些API的類和方法參與到代碼里,而是加在旁邊,對我們進(jìn)行強(qiáng)大的輔助,冥冥之中發(fā)揮強(qiáng)大的功能!

下載lombok插件和引入依賴:

【JavaEE】Spring Boot - 日志文件,JavaEE,java-ee,spring boot,java

【JavaEE】Spring Boot - 日志文件,JavaEE,java-ee,spring boot,java

其實在創(chuàng)建項目的時候就引入了,并且如果沒有安裝插件,也會自動幫你安裝~

注解介紹:

【JavaEE】Spring Boot - 日志文件,JavaEE,java-ee,spring boot,java


【JavaEE】Spring Boot - 日志文件,JavaEE,java-ee,spring boot,java


【JavaEE】Spring Boot - 日志文件,JavaEE,java-ee,spring boot,java

屬性越多,構(gòu)造方法的個數(shù)呈階乘倍數(shù)增加,所以全部都加上是不現(xiàn)實的,并且沒多大必要,并不需要每個都存在~

如果你覺得不夠簡潔,還可以用 注解@Data,它等同于:

@Getter + @Setter + @ToString + @EqualsAndHashCode + @RequiredArgsConstructor + @NoArgsConstructor

等于這一整套~

【JavaEE】Spring Boot - 日志文件,JavaEE,java-ee,spring boot,java

當(dāng)然,你自己寫的代碼,會覆蓋原有的~

5.2 快速讀寫日志文件

同樣的,用到注解

【JavaEE】Spring Boot - 日志文件,JavaEE,java-ee,spring boot,java

這樣后,在類的內(nèi)部就可以直接使用一個靜態(tài)常量 log 了,代表的就是日志制造器

【JavaEE】Spring Boot - 日志文件,JavaEE,java-ee,spring boot,java

【JavaEE】Spring Boot - 日志文件,JavaEE,java-ee,spring boot,java

【JavaEE】Spring Boot - 日志文件,JavaEE,java-ee,spring boot,java

5.3 lombok實現(xiàn)原理

java程序執(zhí)行的流程:

【JavaEE】Spring Boot - 日志文件,JavaEE,java-ee,spring boot,java

而Lombok就是在編碼的時候,減輕了.java用戶代碼的負(fù)擔(dān):

【JavaEE】Spring Boot - 日志文件,JavaEE,java-ee,spring boot,java

我們沒有書寫對應(yīng)的 log 以及Getter和Setter…,但是Lombok幫我們在.class里去添加了對應(yīng)的字節(jié)碼:

【JavaEE】Spring Boot - 日志文件,JavaEE,java-ee,spring boot,java

【JavaEE】Spring Boot - 日志文件,JavaEE,java-ee,spring boot,java

而那個小辣椒插件,是不可或缺的存在,因為沒有它,我們在開發(fā)階段,就會被系統(tǒng)判定沒有對應(yīng)的定義,以至于爆紅,沒有題詞…

  • 插件不等同于框架,插件的存在是在開發(fā)上和視覺上的提升
  • 例如雖然class文件里有定義,但你現(xiàn)在的java代碼上確實沒有對應(yīng)的定義,卻可以使用,有題詞,且不會爆紅,這就是插件的幫助,將一些注解的含義“告訴”編譯器,一些東西算他們定義過了~
  • 插件的復(fù)雜實現(xiàn),不是開發(fā)者需要注意的,“坐享其成即可” (>^ ω ^<)

文章到此結(jié)束!謝謝觀看
可以叫我 小馬,我可能寫的不好或者有錯誤,但是一起加油鴨??!

代碼位置:spring_boot_demo2/src/main · 游離態(tài)/馬拉圈2023年8月 - 碼云 - 開源中國 (gitee.com)文章來源地址http://www.zghlxwxcb.cn/news/detail-632284.html


到了這里,關(guān)于【JavaEE】Spring Boot - 日志文件的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 【JavaEE】Spring Boot - 配置文件

    【JavaEE】Spring Boot - 配置文件

    【JavaEE】Spring Boot 開發(fā)要點總結(jié)(2) 所有重要和必要的數(shù)據(jù)都是在配置文件中配置的 簡潔明了,干凈利落,修改方便,相比于xml,更有代碼的感覺,功能用處也更多更被重視 例如: 數(shù)據(jù)庫的連接時的需要的信息配置(用戶名,url,密碼) 項目的啟動端口是什么(server.po

    2024年02月14日
    瀏覽(24)
  • 【JAVA EE】Spring Boot中maven環(huán)境的搭建和設(shè)置

    【JAVA EE】Spring Boot中maven環(huán)境的搭建和設(shè)置

    Sping Boot是Spring推出的框架,是Spring家族的一個子項目,其設(shè)計初衷是為了簡化Spring配置,從而讓用戶可以輕松構(gòu)建獨立運行的程序,并極大提高工作效率。 本系列將學(xué)習(xí)Spring Boot的相關(guān)原理和簡單開發(fā)。 在Spring Boot框架出現(xiàn)以前,java EE開發(fā)常用的框架是Spring,該框架開始于

    2024年02月06日
    瀏覽(21)
  • 【Spring Boot】了解Spring Boot 的日志文件

    【Spring Boot】了解Spring Boot 的日志文件

    目錄 一、日志的作用 二、日志文件的簡單使用? 1、Spring Boot中的默認(rèn)日志 2、自定義日志打印 三、日志級別 1、日志級別分類 ?2、日志級別的設(shè)置 3、日志持久化 四、基于LomBok的日志輸出 1、安裝Lombok插件 2、使用Lombok添加日志(@slf4j) 3、使用Lombok添加getter和setter方法(@Da

    2024年02月13日
    瀏覽(49)
  • Spring Boot日志文件

    Spring Boot日志文件

    目錄 前言?? 一、日志的作用?? 1、日志真實使用案例:?? 二、日志怎么用?? 1、自定義日志打印?? Ⅰ、在程序中得到日志對象?? ?常見的日志框架說明(了解)?? Ⅱ、使用日志對象打印日志??? 2、日志的級別?? Ⅰ、日志級別有什么用??? Ⅱ、日志級別的分類與使用

    2024年01月18日
    瀏覽(21)
  • Spring Boot 配置文件和日志

    Spring Boot 配置文件和日志

    目錄 配置文件格式 properties配置文件說明 1.properties基本語法 2.讀取配置文件 3.properties缺點 yml配置文件說明 1.yml基本語法 2.配置不同數(shù)據(jù)類型 3.字符串特殊情況 4.配置對象 properties和yml對比 日志 日志的使用 日志級別 日志持久化 Lombok Lombok原理解釋 Spring中配置文件有很重要的

    2024年01月19日
    瀏覽(20)
  • Spring Boot配置保存日志文件

    springboot日志配置: springboot默認(rèn)日志是打印再console中的,不會保存在文件中。我們項目上線肯定要保存日志用于分析的。 一、使用xml配置日志保存(并不需要pom配置slf4j依賴,starter里面已經(jīng)配置了依賴了) 1、在項目的resources目錄下創(chuàng)建一個【logback-spring.xml】日志配置文件

    2024年02月11日
    瀏覽(29)
  • 【Spring Boot學(xué)習(xí)二】日志文件

    【Spring Boot學(xué)習(xí)二】日志文件

    目錄 ??1、自定義輸出日志 ???2、日志級別 2.1 日志級別分類(6種) 2.2 配置日志級別(在.yml文件中設(shè)置:) (1)設(shè)置日志整體級別 (2)分目錄設(shè)置日志級別 ??3、日志怎么持久化 3.1 設(shè)置日志文件名和路徑(.yml文件下配置) ?3.2 對日志分割:每隔多少M分割 ??4、更簡單的

    2024年02月16日
    瀏覽(15)
  • Spring Boot配置文件及日志信息

    Spring Boot配置文件及日志信息

    目錄 前言: Spring Boot優(yōu)點 配置文件 配置文件格式 讀取配置文件 properties配置文件格式 properties優(yōu)缺點分析 yml配置文件格式(另一種標(biāo)記語言) yml優(yōu)缺點分析 Spring Boot 不同平臺配置文件規(guī)則 日志信息 日志的功能 Spring Boot內(nèi)置日志框架 使用日志 得到日志對象 打印日志 日志

    2024年02月01日
    瀏覽(19)
  • 【Spring Boot學(xué)習(xí)】日志文件,Spring Boot也會寫日記了,這些事你知道嘛 ? ? ?

    【Spring Boot學(xué)習(xí)】日志文件,Spring Boot也會寫日記了,這些事你知道嘛 ? ? ?

    前言: 大家好,我是 良辰丫 ,在上一篇文章中我們已經(jīng)學(xué)習(xí)了Spring Boot的配置,接下來我們要學(xué)習(xí)一些日志相關(guān)的東西,什么是日志呢?我們慢慢往下看.?????? ??個人主頁:良辰針不戳 ??所屬專欄:javaEE進(jìn)階篇之框架學(xué)習(xí) ??勵志語句:生活也許會讓我們遍體鱗傷,但最終這些

    2024年02月08日
    瀏覽(36)
  • Java實戰(zhàn):Spring Boot實現(xiàn)AOP記錄操作日志

    本文將詳細(xì)介紹如何在Spring Boot應(yīng)用程序中使用Aspect Oriented Programming(AOP)來實現(xiàn)記錄操作日志的功能。我們將探討Spring Boot集成AOP的基本概念,以及如何使用Spring Boot實現(xiàn)AOP記錄操作日志。最后,我們將通過一個具體示例來演示整個實現(xiàn)過程。本文適合已經(jīng)具備Spring Boot基礎(chǔ)

    2024年02月22日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包