OpenFeign——日志调用

Feign提供了日志打印功能,我们可以通过配置来调整日志级别,从而了解Feign中Http请求的细节。说白了就是对Feign接口调用情况的监控和输出

在这里插入图片描述
openfeign 日志

Feign日志级别:

  • BASIC log信息包含请求方法,请求URL,响应时间
  • FULL 请求+请求body+返回数据
  • HEADERS 请求头+基本请求信息
  • NONE:默认不打印

FeignClient日志配置方式

1 全局配置

@Configuration
public class FeignConfig {
    @Bean
    public Logger.Level feignLogLevel(){
        //设置feign客户端的日志打印级别为FULL
        return Logger.Level.FULL;
    }
}

由于OpenFeign的默认日志级别为NONE,不记录任何请求信息;修改完FeignClient日志设定后,由于SpringBoot默认的日志级别是info,而FeignClient日志级别是debug,debug<info,当前设定修改后,任然不会生效。 因此需要修改application.yml中的日志打印级别为debug

# springboot 默认的日志级别是 info
logging:
# 声明指定的feign service 服务的日志级别为debug,可以打印出服务调用的详情
  level:
  # com.base.servie服务接口client所在的包路径
     com.base.service: debug

2局部配置【针对于指定的服务】

2.1配置类+ @FeignClient
//不需要加Configuration注解
public class FeignConfig {
    @Bean
    public Logger.Level feignLogLevel(){
        //设置feign客户端的日志打印级别为FULL
        return Logger.Level.FULL;
    }
}
//configuration属性,值为Class,配置信息对名称为userprivilege的服务生效
@Resource
@FeignClient(name="userprivilege",fallback = FallBack_PrivilegeService.class ,configuration = FeignConfig.class)
public interface PrivilegeService {

    /**
     * 根据系统id获得配置系统信息
     * @param systemsId
     * @return
     */
    @GetMapping(value = "/systems/getSystemById/{systemsId}")
    ReturnMessageModel<AppSystemsInfo> getSystemById(@PathVariable("systemsId") String systemsId);

    /**
     * 插入配置系统信息
     * @param systemsInfo
     * @return
     */
    @PostMapping("/insertSystemsInfo")
    ReturnMessageModel insertSystemsInfo(AppSystemsInfo systemsInfo);

}
2.2修改Application.yml配置文件
feign:
#配置生命服务调用的日志打印级别
   client:
     config:
      #服务名称  userprivilege
       userprivilege:
          #日志打印模式为FULL,记录所有的请求信息
         loggerlevel: FULL

3 服务调用,打印日志信息

Basic日志
在这里插入图片描述
Full日志
在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
OpenFeign是一种声明式的HTTP客户端,可以使用注解来定义和调用HTTP接口。在实际调用接口时,我们可以通过以下步骤来查看OpenFeign调用过程: 1. 启用Feign的调试日志 在Spring Boot应用中,我们可以通过在application.properties文件中添加以下配置来启用Feign的调试日志: ``` logging.level.com.netflix.feign=DEBUG ``` 这样就可以在控制台中看到Feign的详细调用日志。 2. 定义Feign接口 在定义Feign接口时,我们可以通过注解来描述HTTP接口的请求方法、请求URL、请求参数、请求头等信息。例如: ```java @FeignClient(name = "example", url = "http://example.com") public interface ExampleFeignClient { @GetMapping("/api/users") List<User> getUsers(); } ``` 上述代码中,我们使用了@GetMapping注解来描述HTTP GET请求,请求的URL为/api/users。通过FeignClient注解,我们指定了要调用的服务名称和服务地址。 3. 调用Feign接口 在调用Feign接口时,我们只需要像调用普通Java方法一样调用即可。例如: ```java @Autowired private ExampleFeignClient exampleFeignClient; public List<User> getUsers() { return exampleFeignClient.getUsers(); } ``` 上述代码中,我们通过@Autowired注解将ExampleFeignClient注入到了当前类中,然后就可以直接调用getUsers方法来获取用户列表了。 在调用Feign接口时,Feign会将请求参数、请求头等信息封装成HTTP请求发送出去,并等待服务端的响应。响应结果会被封装成Java对象返回给调用方。在控制台中,我们可以看到Feign发送的HTTP请求和接收到的HTTP响应的详细内容,以及Feign调用过程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值