最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

feign如何打印出http請(qǐng)求

 更新時(shí)間:2022年06月16日 16:47:08   作者:追夢(mèng)的搬運(yùn)工  
這篇文章主要介紹了feign如何打印出http請(qǐng)求,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

feign打印出http請(qǐng)求

用openfign依賴(lài)需要將請(qǐng)求的方法中的http請(qǐng)求打印出來(lái)

需要做如下兩步:

1.記錄請(qǐng)求和響應(yīng)的頭文件

正文和元數(shù)據(jù)的日志,需要在配置文件指出需要打印日志的類(lèi)

?@Bean
? ? Logger.Level feignLoggerLevel() {
? ? ? ? return Logger.Level.FULL;
? ? }

2.在配置文件中配置對(duì)應(yīng)的包

logging:
? level:
? ? com.report.service.analysis.fegin.AdminServiceClient: debug

這樣就會(huì)生效了,如下:

ms] ---> END HTTP (0-byte body)
2021-01-14 10:57:34.525 [http-nio-8080-exec-1] DEBUG c.n.s.r.service.analysis.fegin.AdminServiceClient - TID: N/A - [ServiceClient#getDealerItemListByParams] <--- HTTP/1.1 200 (98ms)
2021-01-14 10:57:34.525 [http-nio-8080-exec-1] DEBUG c.n.s.r.service.analysis.fegin.AdminServiceClient - TID: N/A - [ServiceClient#getDealerItemListByParams] connection: keep-alive
2021-01-14 10:57:34.525 [http-nio-8080-exec-1] DEBUG c.n.s.r.service.analysis.fegin.AdminServiceClient - TID: N/A - [ServiceClient#getDealerItemListByParams] content-type: application/json
2021-01-14 10:57:34.525 [http-nio-8080-exec-1] DEBUG c.n.s.r.service.analysis.fegin.AdminServiceClient - TID: N/A - [ServiceClient#getDealerItemListByParams] date: Thu, 14 Jan 2021 02:57:34 GMT
2021-01-14 10:57:34.525 [http-nio-8080-exec-1] DEBUG c.n.s.r.service.analysis.fegin.AdminServiceClient - TID: N/A - [ServiceClient#getDealerItemListByParams] server: nginx/1.19.0
2021-01-14 10:57:34.526 [http-nio-8080-exec-1] DEBUG c.n.s.r.service.analysis.fegin.AdminServiceClient - TID: N/A - ServiceClient#getDealerItemListByParams] transfer-encoding: chunked
2021-01-14 10:57:34.526 [http-nio-8080-exec-1] DEBUG c.n.s.r.service.analysis.fegin.AdminServiceClient - TID: N/A - [ServiceClient#getDealerItemListByParams] vary: Accept-Encoding
2021-01-14 10:57:34.526 [http-nio-8080-exec-1] DEBUG c.n.s.r.service.analysis.fegin.AdminServiceClient - TID: N/A - [ServiceClient#getDealerItemListByParams] 
2021-01-14 10:57:34.528 [http-nio-8080-exec-1] DEBUG c.n.s.r.service.analysis.fegin.AdminServiceClient - TID: N/A - [ServiceClient#getDealerItemListByParams] {"code":"000000","description":"SUCCESS","data":
2021-01-14 10:57:34.528 [http-nio-8080-exec-1] DEBUG c.n.s.r.service.analysis.fegin.AdminServiceClient - TID: N/A - [ServiceClient#getDealerItemListByParams] <--- END HTTP (2692-byte body)

feign請(qǐng)求日志統(tǒng)一打印

@Slf4j
public class FeignLogger extends feign.Logger {
    static ThreadLocal<Map<String, String>> logContext = new ThreadLocal();
    static String PATH = "path";
    static String METHOD = "method";
    static String REQUEST_BODY = "body";
    static String ELAPSED_TIME = "耗時(shí)";
    static String ELAPSED_TIME_UNIT = "毫秒";
    static String FEIGN_INVOKE_LOGGER = "feign 接口調(diào)用";
    @Override
    protected void logRequest(String configKey, Level logLevel, Request request) {
        Map<String, String> logMap = new HashMap<>(3);
        logMap.put(PATH, request.url());
        logMap.put(METHOD, request.method());
        logMap.put(REQUEST_BODY, request.body() == null ? null :
                request.charset() == null ? null : new String(request.body(), request.charset()));
        logContext.set(logMap);
    }
    @Override
    protected Response logAndRebufferResponse(
            String configKey, Level logLevel, Response response, long elapsedTime) throws IOException {
        Map<String, String> requetParam = logContext.get();
        StringBuilder stringBuilder = new StringBuilder();
        stringBuilder
                .append(FEIGN_INVOKE_LOGGER).append(" ")
                .append(requetParam.get(METHOD)).append(" ")
                .append(response.status()).append(" ")
                .append(requetParam.get(PATH)).append(" ")
                .append(ELAPSED_TIME).append(elapsedTime).append(ELAPSED_TIME_UNIT);
        if (requetParam.get(REQUEST_BODY) != null) {
            stringBuilder.append(" 請(qǐng)求入?yún)?").append(requetParam.get(REQUEST_BODY));
        }
        logContext.remove();
        // 返回參數(shù)
        if (response.body() != null && !(response.status() == 204 || response.status() == 205)) {
            byte[] bodyData = Util.toByteArray(response.body().asInputStream());
            if (bodyData.length > 0) {
                String responseBody = decodeOrDefault(bodyData, UTF_8, "Binary data");
                stringBuilder
                        .append(" 返回值:")
                        .append(responseBody.replaceAll("\\s*|\t|\r|\n", ""));
            }
            log.info(stringBuilder.toString());
            return response.toBuilder().body(bodyData).build();
        }
        log.info(stringBuilder.toString());
        return response;
    }
    protected IOException logIOException(String configKey, Level logLevel, IOException ioe, long elapsedTime) {
        Map<String, String> requetParam = logContext.get();
        StringBuilder stringBuilder = new StringBuilder();
        stringBuilder
                .append(FEIGN_INVOKE_LOGGER).append(" ")
                .append(requetParam.get(METHOD)).append(" ")
                .append(ioe.getClass().getSimpleName()).append(" ")
                .append(requetParam.get(PATH)).append(" ")
                .append(ELAPSED_TIME).append(elapsedTime).append(ELAPSED_TIME_UNIT);;
        if (requetParam.get(REQUEST_BODY) != null) {
            stringBuilder.append(" 請(qǐng)求入?yún)?").append(requetParam.get(REQUEST_BODY));
        }
        log.warn(stringBuilder.toString());
        logContext.remove();
        return ioe;
    }
    @Override
    protected void log(String configKey, String format, Object... args) {
        if (log.isInfoEnabled()) {
            log.info(String.format(methodTag(configKey) + format, args));
        }
    }
}

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

安宁市| 铜川市| 三门县| 栾川县| 雷山县| 读书| 平乡县| 略阳县| 廉江市| 石渠县| 郑州市| 绥棱县| 荥经县| 邯郸县| 仪陇县| 达拉特旗| 特克斯县| 砚山县| 永修县| 天柱县| 德阳市| 防城港市| 漳州市| 辽宁省| 辽宁省| 鹤壁市| 广东省| 石林| 景宁| 安图县| 姚安县| 霍邱县| 芷江| 年辖:市辖区| 罗江县| 北流市| 桐柏县| 高尔夫| 八宿县| 祥云县| 信丰县|