天天看點

SpringBoot實戰(十三):Spring Boot Admin 動态修改日志級别

強烈推薦一個大神的人工智能的教程:http://www.captainbed.net/zhanghan

【前言】

       之前關于線上輸出日志一直有個困惑:如何可以動态調整的日志級别,來保證系統在正常運作時性能同時又能在出現問題時列印詳細的資訊來快速定位問題;最近研究一下Spring Boot Admin中動态日志級别調整,并內建項目中,在此與大家共享;

【動态修改日志級别】

         一、生産環境日志輸出的狀況

                 1、生産環境日志輸出的困惑

                       A.設定日志輸出級别為info;

                          (1)優點:可以詳細的列印日志,有利于排錯;

                          (2)缺點:日志消耗系統的性能較大;隻能針對整個系統整體設定日志輸出較多,定位具體類或方法日志效率較低;

                       B.設定日志輸出級别為error;

                          (1)優點:日志消耗系統性能較小;

                          (2)缺點:當遇到bug時,無法追蹤到詳細資訊難以定位問題;

                 2、解決辦法:

                       A.比較被動的妥協解決方案:項目釋出時設定日志輸出級别為error,當線上遇到問題時,再重新開機項目修改日志的輸出級别為info;

                          (1)優點:無需改造現有項目,無需增加監控系統管理日志級别;

                          (2)缺點:每次都需要重新開機項目,項目多不利于統一管理;

                       B.動态配置日志級别:通過Spring Boot Admin的日志級别管理來動态調整日志級别;

                          (1)優點:動态更新日志級别,細粒度控制(項目,包,類)日志級别,便于快速定位問題;

                          (2)缺點:需要對現有系統進行改造,增加Spring Boot Admin監控系統;

         二、項目內建

                參考上篇博文《SpringBoot實戰(十二):內建 Spring Boot Admin 監控》

         三、效果展示

                 1、檢視項目啟動時日志級别

SpringBoot實戰(十三):Spring Boot Admin 動态修改日志級别

                 2、通路系統接口,檢視日志

SpringBoot實戰(十三):Spring Boot Admin 動态修改日志級别

                 3、在Admin管理控制台修改類 com.zhanghan.zhboot.controller.CheckMobileController 的日志級别為Info

SpringBoot實戰(十三):Spring Boot Admin 動态修改日志級别

                 4、再次通路接口,檢視日志(很顯然,已經将修改為info)

SpringBoot實戰(十三):Spring Boot Admin 動态修改日志級别

         四、項目位址:

                 1、位址:https://github.com/dangnianchuntian/springboot

                 2、代碼版本:1.5.0-Release

【總結】

         1、動态修改日志級别将大大提高我們排錯的效率,盡快定位問題,減少損失;

         2、接下來會為大家共享更多關于SpringBootAdmin的特性。

繼續閱讀