<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
紀錄檔是程式的重要組成部分,在程式報錯的時候,如果我們不看紀錄檔,是很難排查出錯誤的,除非你真的是很有經驗.所以紀錄檔最主要的作用就是排除和定位問題.
紀錄檔提供的功能:
在我們啟動 SpringBoot 專案的時候就會輸出紀錄檔:
主要分兩個步驟:
在一個類中先獲得列印紀錄檔物件(紀錄檔框架提供的紀錄檔物件,而紀錄檔框架預設已經整合到 SpringBoot 裡了)使用紀錄檔物件提供的方法實現紀錄檔的列印
得到紀錄檔物件 Logger ,它來自於 slf4j,不要導錯了包,在程式中獲取⽇志物件需要使⽤⽇志⼯⼚ LoggerFactory
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); //設定當前的型別 @RequestMapping("/sayhi") public void sayHi(){ //2. 使用紀錄檔物件提供的列印方法進行紀錄檔列印 log.trace("我是 trace"); log.debug("我是 debug"); log.info("我是 info"); log.warn("我是 warn"); log.error("我是 error"); } }
有些沒列印,因為他只會列印跟他同級別的或者比他級別高的紀錄檔,他這裡預設是 info 級別.
反饋一些需要的紀錄檔,並不需要把所有的都列印出來
就像是如果你是一家 2 萬人的公司的老闆,需要每天看他們的反饋資訊,難道每個人都看嗎?這顯然看不完,你只需要看一些領頭的就行…
紀錄檔級別分為:
trace
: 微量,少許的意思(級別最低)debug
: 偵錯紀錄檔info
: 普通訊息紀錄檔warn
: 警告紀錄檔error
: 錯誤紀錄檔fatal
: 致命的紀錄檔(系統輸出的紀錄檔,不能自定義列印)紀錄檔級別的順序:
越往上接收到的訊息就越少。
⽇志級別設定只需要在設定⽂件中設定“logging.level”
設定項即可:
# 設定全域性的紀錄檔級別
logging.level.root=warn
# 設定區域性資料夾的紀錄檔級別
logging.level.com.example.demo.UserController=trace
之前的 info 級別紀錄檔就沒列印了.
注意:當存在區域性紀錄檔級別和全域性的紀錄檔級別設定時,那麼當存取區域性紀錄檔時,使用的是區域性紀錄檔級別.也就是 區域性紀錄檔優先順序 > 全域性紀錄檔級別
以上的⽇志都是輸出在控制檯上的,然⽽在⽣產環境上咱們需要將⽇志儲存下來,以便出現問題之後追溯問題,把⽇志儲存下來的過程就叫做持久化。
紀錄檔持久化(將紀錄檔永久的儲存到磁碟的某個位置)
1:在組態檔中設定紀錄檔儲存的路徑,當設定了儲存路勁之後,那麼紀錄檔就會自動進行持久化
2:在組態檔中設定紀錄檔儲存的名稱,紀錄檔會自動進行持久化
#設定紀錄檔儲存的目錄寫法一
logging.file.path=D:\log
#設定紀錄檔儲存的目錄寫法二
logging.file.path=D:/log
開啟這個檔案:
# 設定紀錄檔的儲存名稱
logging.file.name=D:\log\spring-boot.log
如果你當初沒有新增 lombok 又不想重開專案,有這樣一種辦法,下載外掛 EditStarters:
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); //設定當前的型別 @RequestMapping("/sayhi") public void sayHi(){ //2. 使用紀錄檔物件提供的列印方法進行紀錄檔列印 log.trace("我是 trace"); log.debug("我是 debug"); log.info("我是 info"); log.warn("我是 warn"); log.error("我是 error"); } }
看.class
檔案,他是給我們轉換了的:
Java 程式的運⾏原理:
Lombok 的作⽤如下圖所示:
註解 | 作用 |
---|---|
@Getter | ⾃動新增 getter ⽅法 |
@Setter | ⾃動新增 setter ⽅法 |
@ToString | ⾃動新增 toString ⽅法 |
@EqualsAndHashCode | ⾃動新增 equals 和 hashCode ⽅法 |
@NoArgsConstructor | ⾃動新增⽆參構造⽅法 |
@AllArgsConstructor | ⾃動新增全屬性構造⽅法,順序按照屬性的定義順序 |
@NonNull | 屬性不能為 null |
@RequiredArgsConstructor | ⾃動新增必需屬性的構造⽅法,final + @NonNull 的屬性為必需 |
組合註解:
註解 | 作用 |
---|---|
@Data | @Getter + @Setter + @ToString +@EqualsAndHashCode +@RequiredArgsConstructor +@NoArgsConstructor |
紀錄檔註解:
註解 | 作⽤ |
---|---|
@Slf4j | 新增⼀個名為 log 的⽇志,使⽤ slf4j |
到此這篇關於SpringBoot深入瞭解紀錄檔的使用的文章就介紹到這了,更多相關SpringBoot紀錄檔內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45