中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Spring?Boot日志的打印與持久化實例分析

發布時間:2022-08-17 17:30:22 來源:億速云 閱讀:251 作者:iii 欄目:開發技術

這篇文章主要介紹“Spring Boot日志的打印與持久化實例分析”,在日常操作中,相信很多人在Spring Boot日志的打印與持久化實例分析問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Spring Boot日志的打印與持久化實例分析”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

    1. 日志有什么用

    日志是程序的重要組成部分,想象一下,如果程序報錯了,不讓你打開控制臺看日志,那么你能找到報錯的原因嗎?

    答案是否定的,寫程序不是買彩票,不能完全靠猜,因此日志對應我們來說,最重要的用途就是排除和定位問題。

    除了發現和定位問題之外,我們還可以通過日志實現以下功能:

    • 記錄用戶登錄日志,方便分析用戶正常登錄還是惡意破解用戶

    • 記錄系統的操作日志,方便數據恢復和定位操作人

    • 記錄程序的執行實現,方便以后優化程序提供數據支持

    2. 日志怎么用

    Spring Boot 項目在啟動的時候默認就有日志輸出,如下圖所示:

    Spring?Boot日志的打印與持久化實例分析

    以上內容就是 Spring Boot 輸出的控制臺日志信息。

    通過上述日志信息我們可以發現以下3個問題:

    • Spring Boot 內置了日志框架(不然也輸出不了日志)

    • 默認情況下,輸出的?志并?是開發者定義和打印的,那開發者怎么在程序中?定義打印?志呢?

    • ?志默認是打印在控制臺上的,?控制臺的?志是不能被保存的,那么怎么把?志永久的保存下來 呢?

    下面我們一起來找尋這些問題的答案。

    3. Spring Boot 自定義日志的打印

    • 在一個類中先獲取到打印日志對象(日志框架提供的日志對象,而日志框架默認已經集成到 Spring Boot 里了)

    • 使用日志對象提供的方法實現日志的打印

    3.1 先獲取到打印日志對象

    在程序中獲取日志對象需要使用日志工廠 LoggerFactory,如下代碼所示:

     // 1.先得到日志對象(來自 slf4j)
        private static final Logger log =
                LoggerFactory.getLogger(UserController.class);

    日志工廠需要將每個類的類型傳遞進去,這樣我們才知道日志的歸屬類,才能更方便,更直觀的定位到問題類。

    注意:Logger 對象是屬于 org.slf4j 包下的,不要導入錯誤。

    Spring?Boot日志的打印與持久化實例分析

    因為 Spring Boot 中內置了日志框架 slf4j,所以 咋們可以直接在程序中調用 slf4j 來輸出日志

    3.2 使用日志對象打印日志

    日志對象的打印方法有很多,我們可以先使用 info() 方法來輸出日志,如下代碼所示:

    // 2.使用日志對象提供的打印方法進行日志打印
            log.trace("我是 trace");
            log.debug("我是 debug");
            log.info("我是 info");
            log.warn("我是 warn");
            log.error("我是 error");

    打印效果展示:

    Spring?Boot日志的打印與持久化實例分析

    3.3 日志格式說明

    Spring?Boot日志的打印與持久化實例分析

    4. 日志級別

    Spring?Boot日志的打印與持久化實例分析

    Spring?Boot日志的打印與持久化實例分析

    5. 日志持久化(將日志永久的保存到磁盤的某個位置)

    以上的?志都是輸出在控制臺上的,然?在?產環境上咱們需要將?志保存下來,以便出現問題之后追 溯問題,把?志保存下來的過程就叫做持久化。

    想要將?志進?持久化,只需要在配置?件中指定?志的存儲?錄或者是指定?志保存?件名之后, Spring Boot 就會將控制臺的?志寫到相應的?錄或?件下了。

    設置日志的保存路徑

    在配置文件中,輸入如下代碼:

    # 設置日志的保存路徑
    # 正確設置日志路徑的方式1
    logging.file.path=D:/JavaCode/
    # 正確設置日志路徑的方式2
    logging.file.path=D:\\JavaCode\\

    保存后:

    Spring?Boot日志的打印與持久化實例分析

    注意:

    logging.file.path=D:\JavaCode\

    這種寫法,Spring Boot 會認為是一個特殊字符,而非目錄,所以日志持久化不會成功。

    6. 更簡單的日志輸出—lombok

    每次都使用 LoggerFactory.getLogger(xxx.class) 很繁瑣,而且每個類都要添加一遍,也很麻煩,這里有種更好的日志輸出方式,使用 lombok 來更簡單的輸出。

    • 添加 lombok 框架支持

    • 使用 @slf4j 注解輸出日志

    6.1 添加 lombok 到當前項目

    1.在 pom.xml 中先刪除已有的 lombok 依賴

    2.下載插件

    Spring?Boot日志的打印與持久化實例分析

    下載好之后,手動引入 lombok 依賴

    Spring?Boot日志的打印與持久化實例分析

    Spring?Boot日志的打印與持久化實例分析

    6.2 使用 @Slf4j 得到日志對象 log

    @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日志的打印與持久化實例分析

    到此,關于“Spring Boot日志的打印與持久化實例分析”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    南雄市| 陕西省| 濮阳县| 霸州市| 顺昌县| 晋江市| 柳江县| 白城市| 平罗县| 丹巴县| 宁远县| 哈尔滨市| 建昌县| 辽宁省| 遵义市| 东乡县| 江华| 滨海县| 富平县| 鄱阳县| 东乌珠穆沁旗| 吉木萨尔县| 山东省| 达孜县| 东丰县| 黄梅县| 青河县| 东城区| 灌云县| 高邮市| 遵化市| 通化市| 泾源县| 嘉义市| 崇州市| 夹江县| 德阳市| 绥化市| 吉木乃县| 青河县| 遂溪县|