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

如何配置feign全局log

 更新時間:2022年06月20日 08:36:50   作者:hkk666123  
這篇文章主要介紹了如何配置feign全局log,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

SpringBoot集成feign配置全局log

概述

項目里使用了Feign進(jìn)行遠(yuǎn)程調(diào)用,有時為了問題排查,需要開啟請求和響應(yīng)日志,下面簡介一下如何開啟Feign日志

設(shè)置Feign接口日志級別為FULL

在application.yml添加log配置

方式一: 在啟動類路徑設(shè)置debug級別的日志(推薦)

logging:
? level:
? ? com.example.demo: debug?

方式二: 在配置@FeignClien的類徑設(shè)置debug級別的日志

logging:
? level:
? ? com.example.demo.feign.DemoFeignClient: debug 

配置feign的日志級別

方式一: 在application.yml配置(推薦)

feign.client.config.default.loggerLevel: full

方式二: 使用@Configuration配置類完成配置

@Configuration
public class FeignConfiguration {
? @Bean
? public Logger.Level level() { return Logger.Level.FULL; }
}

Feign日志級別

  • NONE,無記錄(DEFAULT)。
  • BASIC,只記錄請求方法和URL以及響應(yīng)狀態(tài)代碼和執(zhí)行時間。
  • HEADERS,記錄基本信息以及請求和響應(yīng)標(biāo)頭。
  • FULL,記錄請求和響應(yīng)的頭文件,正文和元數(shù)據(jù)

feign常用配置

Feign的組成

日志級別打印內(nèi)容
NONE(默認(rèn))不記錄任何日志
BASIC僅記錄請求方法,URL,響應(yīng)狀態(tài)代碼以及執(zhí)行時間(適合生產(chǎn)環(huán)境)
HEADERS記錄BASIC級別的基礎(chǔ)上,記錄請求和響應(yīng)的header
FULL記錄請求和弦ineader,body和元數(shù)據(jù)

首先如何整合Feign

遵循SpringBoot的三板斧第一步:加依賴

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>

第二步:寫注解

@EnableFeignClients //在啟動類上加

第三步:寫配置

如何給Feign添加日志級別

細(xì)粒度

方式一:代碼實現(xiàn)第一步

添加Feign配置類,可以添加在主類下,但是不用添加@Configuration。如果添加了@Configuration而且又放在了主類之下,那么就會所有Feign客戶端實例共享,同Ribbon配置類一樣父子上下文加載沖突;如果一定添加@Configuration,就放在主類加載之外的包。建議還是不用加@Configuration。

public class FeignConfig {
    @Bean
    public Logger.Level Logger() {
        return Logger.Level.FULL;
    }
}

第二步:給@FeignClient添加配置類

//@FeignClient configuration = GoodsFeignConfig.class 細(xì)粒度配置,指定配置類
@FeignClient(name = "goods", configuration = FeignConfig.class)

第三步:寫配置

logging:
  level:
    com.xxx.xxx.FeignAPI: DEBUG #需要將FeignClient接口全路徑寫上# 開啟日志 格式為logging.level. Feign客戶端路徑

方式二:配置屬性實現(xiàn)

feign:
  client:
    config:
      #想要調(diào)用的微服務(wù)名稱
      server-1:
        loggerLevel: FULL

全局配置

方式一:代碼實現(xiàn)添加了@Configuration放在了主類之下,那么就會所有Feign客戶端實例共享,同Ribbon配置類一樣父子上下文加載沖突;讓父子上下文ComponentScan重疊(強(qiáng)烈不建議)唯一正確方式

//在啟動類上為@EnableFeignClients注解添加defaultConfiguration配置
@EnableFeignClients(defaultConfiguration = FeignConfig.class)

方式二:配置屬性實現(xiàn)

feign:
  client:
    config:
      #將調(diào)用的微服務(wù)名稱改成default就配置成全局的了
      default:
        loggerLevel: FULL

Feign支持的配置項

代碼方式

配置項作用
Logger.Level指定日志級別
Retryer指定重試策略
ErrorDecoder指定錯誤解碼器
Request.Options超時時間
Collection攔截器
SetterFactory用于設(shè)置Hystrix的配置屬性,F(xiàn)gien整合Hystrix才會用

配置屬性

feign:
  client:
    config:
      feignName:
        connectTimeout: 5000  # 相當(dāng)于Request.Optionsn 連接超時時間
        readTimeout: 5000     # 相當(dāng)于Request.Options 讀取超時時間
        loggerLevel: full     # 配置Feign的日志級別,相當(dāng)于代碼配置方式中的Logger
        errorDecoder: com.example.SimpleErrorDecoder  # Feign的錯誤解碼器,相當(dāng)于代碼配置方式中的ErrorDecoder
        retryer: com.example.SimpleRetryer  # 配置重試,相當(dāng)于代碼配置方式中的Retryer
        requestInterceptors: # 配置攔截器,相當(dāng)于代碼配置方式中的RequestInterceptor
          - com.example.FooRequestInterceptor
          - com.example.BarRequestInterceptor
        # 是否對404錯誤解碼
        decode404: false
        encode: com.example.SimpleEncoder
        decoder: com.example.SimpleDecoder
        contract: com.example.SimpleContract

Feign還支持對請求和響應(yīng)進(jìn)行GZIP壓縮,以提高通信效率,配置方式如下:

# 配置請求GZIP壓縮
feign.compression.request.enabled=true
# 配置響應(yīng)GZIP壓縮
feign.compression.response.enabled=true
# 配置壓縮支持的MIME TYPE
feign.compression.request.mime-types=text/xml,application/xml,application/json
# 配置壓縮數(shù)據(jù)大小的下限
feign.compression.request.min-request-size=2048

Ribbon配置 VS Feign配置

粒度RibbonFeign
代碼局部@RibbonClient(configuration=RibbonConfig.class),RibbonConfig類必須加@Configuration,且必須放在父上下文無法掃到的包下@FeignClient(configuration=FeignConfig.class),F(xiàn)eignConfig類的@Configuration可以不加(可選),如果有,必須放在父上下文無法掃到的包下
代碼全局@RibbonClients(defaultConfigurtion=RibbonConfig.class)@EnableFeignClients(defaultConfiguration = FeignConfig.class)...
配置屬性局部.ribbon.NFLoadBalancerClassName...feign.client.config..loggerLevel...
配置屬性全局feign.client.config.default.loggerLevel

Feign 代碼方式 VS 配置屬性方式

配置方式有點(diǎn)缺點(diǎn)
代碼配置基于代碼,更加靈活如果Feign的配置類加了@Configuration注解,需注意父子上下文,線上修改需要重打包,發(fā)布
屬性配置易上手配置更加直觀線上修改無需重新打包,發(fā)布優(yōu)先級更高極端場景下沒有代碼配置更加靈活

優(yōu)先級:細(xì)粒度屬性配置 > 細(xì)粒度代碼配置 > 全局屬性配置 > 全局代碼配置

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

相關(guān)文章

  • java簡單實現(xiàn)多線程及線程池實例詳解

    java簡單實現(xiàn)多線程及線程池實例詳解

    這篇文章主要為大家詳細(xì)介紹了java簡單實現(xiàn)多線程,及java爬蟲使用線程池實例,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • 關(guān)于接口ApplicationContext中的getBean()方法使用

    關(guān)于接口ApplicationContext中的getBean()方法使用

    這篇文章主要介紹了關(guān)于接口ApplicationContext中的getBean()方法使用,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • Java實現(xiàn)PDF轉(zhuǎn)Word的示例代碼(無水印無頁數(shù)限制)

    Java實現(xiàn)PDF轉(zhuǎn)Word的示例代碼(無水印無頁數(shù)限制)

    這篇文章主要為大家詳細(xì)介紹了如何利用Java語言實現(xiàn)PDF轉(zhuǎn)Word文件的效果,并可以無水印、無頁數(shù)限制。文中的示例代碼講解詳細(xì),需要的可以參考一下
    2022-05-05
  • 基于Mybatis映射的一點(diǎn)心得(分享)

    基于Mybatis映射的一點(diǎn)心得(分享)

    下面小編就為大家?guī)硪黄贛ybatis映射的一點(diǎn)心得(分享)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-11-11
  • 帶你了解Java數(shù)據(jù)結(jié)構(gòu)和算法之棧

    帶你了解Java數(shù)據(jù)結(jié)構(gòu)和算法之棧

    這篇文章主要為大家介紹了Java數(shù)據(jù)結(jié)構(gòu)和算法之棧 ,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-01-01
  • SpringBoot實現(xiàn)國密通信的流程步驟

    SpringBoot實現(xiàn)國密通信的流程步驟

    這篇文章主要介紹了SpringBoot實現(xiàn)國密通信的流程步驟,我們需要完成以下步驟:生成支持國密的證書,配置兩個 Spring Boot 項目,使用國密證書實現(xiàn) HTTPS和驗證通信是否成功,通過代碼示例講解的非常詳細(xì),需要的朋友可以參考下
    2024-11-11
  • 解決Maven多模塊編譯慢的問題

    解決Maven多模塊編譯慢的問題

    這篇文章主要介紹了Maven多模塊編譯慢的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • Java實現(xiàn)訂單超時未支付自動取消的8種方法總結(jié)

    Java實現(xiàn)訂單超時未支付自動取消的8種方法總結(jié)

    這篇文章主要為大家介紹了Java實現(xiàn)訂單超時未支付自動取消功能的8種不同方法,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2022-08-08
  • Java設(shè)計模式中橋接模式應(yīng)用詳解

    Java設(shè)計模式中橋接模式應(yīng)用詳解

    橋接,顧名思義,就是用來連接兩個部分,使得兩個部分可以互相通訊。橋接模式將系統(tǒng)的抽象部分與實現(xiàn)部分分離解耦,使他們可以獨(dú)立的變化。本文通過示例詳細(xì)介紹了橋接模式的原理與使用,需要的可以參考一下
    2022-11-11
  • 在Spring boot的項目中使用Junit進(jìn)行單體測試

    在Spring boot的項目中使用Junit進(jìn)行單體測試

    今天小編就為大家分享一篇關(guān)于spring boot使用Junit進(jìn)行測試,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12

最新評論

卢湾区| 凯里市| 厦门市| 敦煌市| 调兵山市| 崇信县| 蒲城县| 泸溪县| 大城县| 竹山县| 墨江| 建湖县| 阆中市| 平南县| 内乡县| 靖宇县| 崇州市| 盱眙县| 泗水县| 通辽市| 梅河口市| 遂溪县| 滨海县| 莒南县| 张北县| 武邑县| 泸西县| 洛阳市| 伊通| 南阳市| 福州市| 牡丹江市| 宁化县| 稻城县| 泗水县| 石阡县| 胶州市| 中西区| 尚义县| 来安县| 上蔡县|