【feign】配置feign全局log

本文介绍了如何在SpringBoot中集成Feign并配置全局日志,以便于问题排查。详细步骤包括设置Feign接口日志级别为FULL,以及通过`application.yml`或@Configuration类配置日志级别。提供了两种方式分别在`yml`配置文件和代码中设置日志级别,并列举了Feign日志的四种级别:NONE、BASIC、HEADERS、FULL。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SpringBoot集成feign配置全局log

概述

项目里使用了Feign进行远程调用,有时为了问题排查,需要开启请求和响应日志,下面简介一下如何开启Feign日志

设置Feign接口日志级别为FULL

application.yml添加log配置

  • 方式一: 在启动类路径设置debug级别的日志(推荐)
logging:
  level:
    com.example.demo: debug 
  • 方式二: 在配置@FeignClien的类径设置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以及响应状态代码和执行时间。
  • HEADERS,记录基本信息以及请求和响应标头。
  • FULL,记录请求和响应的头文件,正文和元数据

参考

Feign是Netflix的一个开源库,用于声明式API客户端,但在请求远程服务时可能会遇到`feign.FeignException`,其中包含一个特定的异常`NotFoundLabException`,表示目标服务未找到(404错误)。当Feign尝试访问一个不存在的URL时,它会抛出这个异常。 对于这种异常的统一处理,通常我们会采用以下步骤: 1. **全局异常处理器**:在应用程序启动时,设置一个全局Feign client拦截器或者全局异常处理器,如Spring Cloud的`GlobalResponseHandler`或`GlobalFeignClientInterceptor`。在这里,可以捕获所有`NotFoundLabException`并将其转化为自定义的异常或者日志信息。 ```java @FeignClient(name = "lab-service") public interface LabService { //... } @Configuration public class FeignConfiguration { @Bean public GlobalResponseHandler globalResponseHandler() { return new GlobalResponseHandler() { @Override public Response handleResponse(Response original) { try { if (original.status() == HttpStatus.NOT_FOUND) { throw new NotFoundException("Resource not found"); } } catch (IOException e) { // log and handle the error } return original; } }; } ``` 2. **业务逻辑层处理**:如果需要对这类异常进行更具体的业务处理,比如记录错误日志、提供友好的用户提示等,可以在调用Feign客户端的地方添加额外的检查和处理。 3. **异常传播**:如果不想中断整个请求流程,可以选择让程序继续执行,但忽略找不到的服务。这可以通过将处理逻辑放入try-catch块中,并返回默认值或者错误状态码给前端。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值