天天看點

springboot3 從0開始搭建5,排除問題的法寶之正确地記錄日志

作者:小李子說程式

前言

開發中,排除線上問題,最好的方法無疑是檢視日志。如何正确的記錄日志,是每一個開發人員應該掌握的技能。很多時候,日志記錄的好壞,決定了排查問題的速度。

springboot3 從0開始搭建5,排除問題的法寶之正确地記錄日志

日志級别

日志一般常用的四種級别: debug(開發時用) info (記錄一些日志追蹤資訊)warn(警告,可以通過警告喲花程式)error(發生錯誤,這個也是我們最值得關注的)

內建日志

springboot 預設內建了logback,可以讀取log-spring.xml 的配置,日志的輸出一般常用的有以下幾種方式: 1 輸出到檔案 2 輸出到郵件 3 輸出到資料庫

實踐

配置log-spring.xml 對應的appender

1 檔案appender

這裡選擇按時間滾動輸出(按配置會根據檔案的大小按日期自動生成多個檔案,這裡要合理的配置檔案的大小,一般建議10m , 太多了檢視起來不友善)

springboot3 從0開始搭建5,排除問題的法寶之正确地記錄日志

2 郵件appender

這個通常是将error級别的錯誤發送到某個郵件,這樣就可以及時的提醒收件人,這裡的日志發送是異步的,是以對程式的影響可以忽略不計。

springboot3 從0開始搭建5,排除問題的法寶之正确地記錄日志

3 資料庫 DBAppender

很多時候日志檔案查詢資訊,很是麻煩,需要登入到伺服器,然後去檢視日志,一般如果有運維的話,自己沒權限通路伺服器,還要麻煩運維,這個時候我們就可以考慮,将一些資訊放入資料庫,logback也是很好的提供了支援,為我們提供了需要用到的表結構,支援多種資料類型,腳本位置如圖

springboot3 從0開始搭建5,排除問題的法寶之正确地記錄日志

這裡還需要單獨引入DBAppender,新版本去掉了此類,需要引入新的jar包

springboot3 從0開始搭建5,排除問題的法寶之正确地記錄日志

最後的配置如下

springboot3 從0開始搭建5,排除問題的法寶之正确地記錄日志

注意: 這裡添加了一個連接配接池來與DBAppender關聯,為了提高資料庫的寫入效率,加入後可由原來的大約10ms縮短到1ms,這就是池技術的好處,可以提升10倍性能。

總結

第一種檔案記錄日志的方式是大家最常用的,但是一般不推薦直接檢視日志檔案,可以通過分布式日志系統,比如elk 采集異步采集檔案,然後查找日志。推薦大家将這幾種方式結合起來,根據自己的需求來合理搭配使用,提高開發效率。

寫在最後

十多年軟體開發,現在每天思考的是如何用最優的技術,最快速的落地業務,希望大家一起多多交流。

繼續閱讀