Feign的日志配置

配置Feign日志有两种方式:

方式一:配置文件方式

全局生效:

feign:
  client:
    config: 
      default: # 这里用default就是全局配置,如果是写服务名称,则是针对某个微服务的配置
        loggerLevel: FULL #  日志级别 

2.局部生效:

feign:
  client:
    config: 
      userservice: # 这里用default就是全局配置,如果是写服务名称,则是针对某个微服务的配置
        loggerLevel: FULL #  日志级别 

配置Feign日志的方式二:java代码方式,需要先声明一个Bean

public class FeignClientConfiguration {
    @Bean
    public Logger.Level feignLogLevel(){
        return Logger.Level.BASIC; 
    }
}

而后如果是全局配置,则把它放到@EnableFeignClients这个注解中:

@EnableFeignClients(defaultConfiguration = FeignClientConfiguration.class) 

如果是局部配置,则把它放到@FeignClient这个注解中

@FeignClient(value = "userservice", configuration = FeignClientConfiguration.class) 

总结:

Feign的日志配置:

1. 方式一是配置文件, feign.client.config.xxx.loggerLevel
如果 xxx default 则代表全局
如果 xxx 是服务名称,例如 userservice 则代表某服务
2. 方式二是 java 代码配置 Logger.Level 这个 Bean
如果在 @EnableFeignClients 注解声明则代表全局
如果在 @FeignClient 注解中声明则代表某服务
JVM中使用Feign进行服务调用时,需要对Feign客户端进行一些基本配置。以下是一些常见的配置项: 1. **连接超时(Connect Timeout)** 和 **读取超时(Read Timeout)**:设置网络请求的连接建立时间和数据读取的时间限制,防止长时间等待导致应用阻塞。可以这样配置: ```java Feign.builder() .connectTimeout(5000) // 连接超时毫秒 .readTimeout(10000); // 读取超时毫秒 ``` 2. **全局HTTP头(Global HTTP Headers)**:可以在FeignClient的构造函数或静态方法中设置通用的HTTP请求头,如认证信息: ```java @Target(value = ServiceInterface.class) public interface MyService { @RequestLine("GET /") String get(@Header("Authorization") String token); } ``` 3. **编码和解码器(Encoding and Decoding)**:可以选择自定义编码器和解码器处理序列化和反序列化操作,如Gson或Jackson等: ```java @Configuration public class MyFeignConfiguration { @Bean public Encoder feignEncoder() { return new GsonEncoder(); } @Bean public Decoder feignDecoder() { return new GsonDecoder(); } } ``` 4. **熔断和降级(Circuit Breaker and Fallback)**:可以利用Hystrix或其它库实现服务容错和健康检查策略: ```java @FeignClient(name = "my-service", fallback = MyServiceFallback.class) public interface MyService { @GetMapping("/endpoint") String getData(); } public class MyServiceFallback implements MyService { // 当主服务不可用时提供默认响应 @Override public String getData() { return "fallback data"; } } ``` 5. **缓存(Caching)**:通过Spring Cloud Ribbon的缓存功能提高性能,减少不必要的网络请求。 6. **日志记录(Logging)**:可以配置Feign日志级别和格式,帮助调试问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Keep—going

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值