您好,登錄后才能下訂單哦!
這篇文章主要介紹“Spring Boot日志的打印與持久化實例分析”,在日常操作中,相信很多人在Spring Boot日志的打印與持久化實例分析問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Spring Boot日志的打印與持久化實例分析”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
日志是程序的重要組成部分,想象一下,如果程序報錯了,不讓你打開控制臺看日志,那么你能找到報錯的原因嗎?
答案是否定的,寫程序不是買彩票,不能完全靠猜,因此日志對應我們來說,最重要的用途就是排除和定位問題。
除了發現和定位問題之外,我們還可以通過日志實現以下功能:
記錄用戶登錄日志,方便分析用戶正常登錄還是惡意破解用戶
記錄系統的操作日志,方便數據恢復和定位操作人
記錄程序的執行實現,方便以后優化程序提供數據支持
Spring Boot 項目在啟動的時候默認就有日志輸出,如下圖所示:
以上內容就是 Spring Boot 輸出的控制臺日志信息。
通過上述日志信息我們可以發現以下3個問題:
Spring Boot 內置了日志框架(不然也輸出不了日志)
默認情況下,輸出的?志并?是開發者定義和打印的,那開發者怎么在程序中?定義打印?志呢?
?志默認是打印在控制臺上的,?控制臺的?志是不能被保存的,那么怎么把?志永久的保存下來 呢?
下面我們一起來找尋這些問題的答案。
在一個類中先獲取到打印日志對象(日志框架提供的日志對象,而日志框架默認已經集成到 Spring Boot 里了)
使用日志對象提供的方法實現日志的打印
在程序中獲取日志對象需要使用日志工廠 LoggerFactory
,如下代碼所示:
// 1.先得到日志對象(來自 slf4j) private static final Logger log = LoggerFactory.getLogger(UserController.class);
日志工廠需要將每個類的類型傳遞進去,這樣我們才知道日志的歸屬類,才能更方便,更直觀的定位到問題類。
注意:Logger 對象是屬于 org.slf4j 包下的,不要導入錯誤。
因為 Spring Boot 中內置了日志框架 slf4j,所以 咋們可以直接在程序中調用 slf4j 來輸出日志
日志對象的打印方法有很多,我們可以先使用 info() 方法來輸出日志,如下代碼所示:
// 2.使用日志對象提供的打印方法進行日志打印
log.trace("我是 trace");
log.debug("我是 debug");
log.info("我是 info");
log.warn("我是 warn");
log.error("我是 error");
打印效果展示:
以上的?志都是輸出在控制臺上的,然?在?產環境上咱們需要將?志保存下來,以便出現問題之后追 溯問題,把?志保存下來的過程就叫做持久化。
想要將?志進?持久化,只需要在配置?件中指定?志的存儲?錄或者是指定?志保存?件名之后, Spring Boot 就會將控制臺的?志寫到相應的?錄或?件下了。
在配置文件中,輸入如下代碼:
# 設置日志的保存路徑
# 正確設置日志路徑的方式1
logging.file.path=D:/JavaCode/
# 正確設置日志路徑的方式2
logging.file.path=D:\\JavaCode\\
保存后:
注意:
logging.file.path=D:\JavaCode\
這種寫法,Spring Boot 會認為是一個特殊字符,而非目錄,所以日志持久化不會成功。
每次都使用 LoggerFactory.getLogger(xxx.class) 很繁瑣,而且每個類都要添加一遍,也很麻煩,這里有種更好的日志輸出方式,使用 lombok 來更簡單的輸出。
添加 lombok 框架支持
使用 @slf4j 注解輸出日志
1.在 pom.xml 中先刪除已有的 lombok 依賴
2.下載插件
下載好之后,手動引入 lombok 依賴
@Controller @ResponseBody @Slf4j // 替代了之前需要通過 LoggerFactory.getLogger 操作 public class UserService { @RequestMapping("/sayhi2") public void sayHi2() { log.trace("我是 trace"); log.debug("我是 debug"); log.info("我是 info"); log.warn("我是 warn"); log.error("我是 error"); } }
控制臺打印結果如下:
到此,關于“Spring Boot日志的打印與持久化實例分析”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。