SpringBoot3 從0開始搭建5,排除問題的法寶之正確地記錄日志
前言
開發(fā)中,排除線上問題,最好的方法無疑是查看日志。如何正確的記錄日志,是每一個開發(fā)人員應(yīng)該掌握的技能。很多時候,日志記錄的好壞,決定了排查問題的速度。
日志級別
日志一般常用的四種級別: debug(開發(fā)時用) info (記錄一些日志追蹤信息)warn(警告,可以通過警告喲花程序)error(發(fā)生錯誤,這個也是我們最值得關(guān)注的)
集成日志
springboot 默認集成了logback,可以讀取log-spring.xml 的配置,日志的輸出一般常用的有以下幾種方式: 1 輸出到文件 2 輸出到郵件 3 輸出到數(shù)據(jù)庫
實踐
配置log-spring.xml 對應(yīng)的appender
1 文件appender
這里選擇按時間滾動輸出(按配置會根據(jù)文件的大小按日期自動生成多個文件,這里要合理的配置文件的大小,一般建議10m , 太多了查看起來不方便)
2 郵件appender
這個通常是將error級別的錯誤發(fā)送到某個郵件,這樣就可以及時的提醒收件人,這里的日志發(fā)送是異步的,所以對程序的影響可以忽略不計。
3 數(shù)據(jù)庫 DBAppender
很多時候日志文件查詢信息,很是麻煩,需要登錄到服務(wù)器,然后去查看日志,一般如果有運維的話,自己沒權(quán)限訪問服務(wù)器,還要麻煩運維,這個時候我們就可以考慮,將一些信息放入數(shù)據(jù)庫,logback也是很好的提供了支持,為我們提供了需要用到的表結(jié)構(gòu),支持多種數(shù)據(jù)類型,腳本位置如圖
這里還需要單獨引入DBAppender,新版本去掉了此類,需要引入新的jar包
最后的配置如下
注意: 這里添加了一個連接池來與DBAppender關(guān)聯(lián),為了提高數(shù)據(jù)庫的寫入效率,加入后可由原來的大約10ms縮短到1ms,這就是池技術(shù)的好處,可以提升10倍性能。
總結(jié)
第一種文件記錄日志的方式是大家最常用的,但是一般不推薦直接查看日志文件,可以通過分布式日志系統(tǒng),比如elk 采集異步采集文件,然后查找日志。推薦大家將這幾種方式結(jié)合起來,根據(jù)自己的需求來合理搭配使用,提高開發(fā)效率。