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