欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Springboot集成magic-api的詳細(xì)過程

 更新時(shí)間:2023年06月13日 08:59:46   作者:有一只柴犬  
這篇文章主要介紹了Springboot集成magic-api的相關(guān)知識(shí),本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

1、前言

今天項(xiàng)目中遇到一個(gè)問題,springboot后端項(xiàng)目經(jīng)常使用log4j輸出日志,同時(shí)會(huì)配置相應(yīng)日志級(jí)別。但是由于開發(fā)過程中不經(jīng)意間都會(huì)log.info("xxxx")來打印日志,而線上級(jí)別也會(huì)控制在info級(jí)別。正常不會(huì)有什么問題,但是今天有個(gè)超長(zhǎng)報(bào)文傳輸,恰好日志在控制臺(tái)輸出了這段報(bào)文用作跟蹤。而log并沒有開啟緩存以及并行寫入,導(dǎo)致IO阻塞,程序無法正常響應(yīng)。

通常情況下,這種問題的解決措施為:

  • 直接重啟程序
  • 使用arths動(dòng)態(tài)調(diào)整日志級(jí)別

arths是個(gè)好工具,很適合用于線上排障,應(yīng)對(duì)該場(chǎng)景也可以直接動(dòng)態(tài)調(diào)整log級(jí)別,而不需要重啟服務(wù)器。那么今天再介紹另一個(gè)可以動(dòng)態(tài)調(diào)整日志級(jí)別的工具,magic-api。magic-api

2、springboot集成magic-api

2.1、添加maven依賴

<dependency>    
    <groupId>org.ssssssss</groupId>    
    <artifactId>magic-api-spring-boot-starter</artifactId>    
    <version>2.1.0</version>
</dependency>

其他springboot的相關(guān)依賴就不贅述了。

2.2、application.yml配置

magic-api:
  web: /magic/web    # magic-api控制臺(tái)訪問地址
  resource:          # magic-api數(shù)據(jù)存儲(chǔ)信息配置
    location: workspace/magic/data      # location表示使用本地文件存儲(chǔ),存儲(chǔ)路徑為工作目錄workspace/magic/data下
    datasource:        # datasource表示數(shù)據(jù)源存儲(chǔ),這里指定使用的數(shù)據(jù)源, datasource和location選擇一個(gè)

2.3、編寫測(cè)試接口

@Slf4j
@RestController
@RequestMapping("test")
public class TestController {
    @GetMapping("index")
    public String index(){
        //  trace 級(jí)別日志        
        LOGGER.trace("-------trace------");
        //  debug 級(jí)別日志        
        LOGGER.debug("-------debug------");
        //  info 級(jí)別日志        
        LOGGER.info("-------info------");
        //  warn 級(jí)別日志        
        LOGGER.warn("-------warn------");
        //  error 級(jí)別日志        
        LOGGER.error("-------error------");
        return "ok";
    }
}

2.4、啟動(dòng)程序,訪問接口

當(dāng)看到控制臺(tái)輸出如下信息,就是已經(jīng)啟動(dòng)成功了。

訪問接口:http://localhost:8083/test/index??梢钥吹饺罩敬蛴。?/p>

由于默認(rèn)日志級(jí)別是info,所以看到info以上級(jí)別的輸出。

2.5、magic-api腳本

打開magic-api控制臺(tái):http://192.168.0.109:8083/magic/web/index.html

左側(cè)菜單欄選擇接口,接著空白處右鍵創(chuàng)建分組:

創(chuàng)建完分組后,創(chuàng)建接口:

創(chuàng)建后,在return "Hello magic-api"編輯框內(nèi)使用如下腳本:

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import ch.qos.logback.classic.Level;
import ch.qos.logback.classic.LoggerContext;
var levelName = "debug";
var packageName = "com.xxx";
LoggerFactory.getILoggerFactory().getLogger(packageName).setLevel(Level.toLevel(levelName));
return "OK";

由于springboot中使用了lombok,使用了默認(rèn)的logback,所以這里的impor實(shí)現(xiàn)類需要找對(duì)。不然沒有效果。

輸入后,點(diǎn)擊右上角的運(yùn)行按鈕。運(yùn)行完可以再次訪問測(cè)試接口地址。

可以看到日志級(jí)別調(diào)整為debug,而程序不用重啟。

3、magic-api其他語法

magic-api其實(shí)是通過JVM的script語言注入進(jìn)去,提供了其他豐富的功能。這里不贅述,也需要慢慢使用體會(huì)。其他的特性語法可以參考文檔:

簡(jiǎn)介 | magic-api

這里只是拋磚引玉而已。

4、注意事項(xiàng)

使用magic-api的時(shí)候需要注意,正因?yàn)槿绱朔奖愕墓δ芎吞匦?,如果貿(mào)然線上使用該插件,很容易導(dǎo)致被人而已攻擊注入。所以盡可能避免外網(wǎng)訪問,我們的處理措施是ng代理上直接不對(duì)外暴露,僅限于內(nèi)部研發(fā)排障使用。

相比這種需要集成在代碼中的使用方式,arths可能具有天然的優(yōu)勢(shì),但是magic-api也有其特長(zhǎng),可以雙管齊下,取長(zhǎng)補(bǔ)短吧。

相關(guān)文章

  • FastJSON的0day漏洞的解決

    FastJSON的0day漏洞的解決

    本文主要介紹了FastJSON的0day漏洞的解決,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • java設(shè)計(jì)模式之組合模式(Composite)

    java設(shè)計(jì)模式之組合模式(Composite)

    這篇文章主要為大家詳細(xì)介紹了java設(shè)計(jì)模式之組合模式Composite,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • idea解決Git分支合并沖突問題

    idea解決Git分支合并沖突問題

    這篇文章主要介紹了idea解決Git分支合并沖突問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • SpringBoot集成Session的實(shí)現(xiàn)示例

    SpringBoot集成Session的實(shí)現(xiàn)示例

    Session是一個(gè)在Web開發(fā)中常用的概念,它表示服務(wù)器和客戶端之間的一種狀態(tài)管理機(jī)制,用于跟蹤用戶在網(wǎng)站或應(yīng)用程序中的狀態(tài)和數(shù)據(jù),本文主要介紹了SpringBoot集成Session的實(shí)現(xiàn)示例,感興趣的可以了解一下
    2023-09-09
  • Java快速排序及求數(shù)組中第k小的值解析

    Java快速排序及求數(shù)組中第k小的值解析

    這篇文章主要介紹了Java快速排序及求數(shù)組中第k小的值解析,選一個(gè)中間值,把數(shù)組中比它小的元素放到左邊,比它大的元素放到右邊,這時(shí)形成三個(gè)子數(shù)組,分別是中間值,比它大的數(shù)和比它小的數(shù),然后對(duì)前后兩個(gè)數(shù)組進(jìn)行遞歸,需要的朋友可以參考下
    2023-11-11
  • java中JVM中如何存取數(shù)據(jù)和相關(guān)信息詳解

    java中JVM中如何存取數(shù)據(jù)和相關(guān)信息詳解

    這篇文章主要介紹了JVM中如何存取數(shù)據(jù)和相關(guān)信息詳解,Java源代碼文件(.java后綴)會(huì)被Java編譯器編譯為字節(jié)碼文件,然后由JVM中的類加載器加載各個(gè)類的字節(jié)碼文件,加載完畢之后,交由JVM執(zhí)行引擎執(zhí)行。JVM中怎么存取數(shù)據(jù)和相關(guān)信息呢?,需要的朋友可以參考下
    2019-06-06
  • java 實(shí)現(xiàn)比較版本號(hào)功能

    java 實(shí)現(xiàn)比較版本號(hào)功能

    本篇文章主要介紹了java 中涉及到客戶端的系統(tǒng)經(jīng)常需要用到比較版本號(hào)的功能,并附小示例,希望能幫助需要的小伙伴
    2016-07-07
  • 搭建Spring MVC和Vue3的應(yīng)用程序的實(shí)現(xiàn)

    搭建Spring MVC和Vue3的應(yīng)用程序的實(shí)現(xiàn)

    本文主要介紹了搭建Spring MVC和Vue3的應(yīng)用程序的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-11-11
  • Mybatis攔截器實(shí)現(xiàn)公共字段填充的示例代碼

    Mybatis攔截器實(shí)現(xiàn)公共字段填充的示例代碼

    本文介紹了使用Spring Boot和MyBatis實(shí)現(xiàn)公共字段的自動(dòng)填充功能,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-12-12
  • Ajax登錄驗(yàn)證實(shí)現(xiàn)代碼

    Ajax登錄驗(yàn)證實(shí)現(xiàn)代碼

    這篇文章主要為大家詳細(xì)介紹了jQuery+ajax實(shí)現(xiàn)用戶登錄驗(yàn)證,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-07-07

最新評(píng)論