Feign 的日志

Feign的日志

上一篇:Feign对于压缩的支持
下一篇:provider集群和负载均衡 ribbon
很多场景下,需要了解 Feign 处理请求的具体细节, 那么如何满足这种需求呢?

简单介绍

Feign 对日志的处理非常灵活, 可为每个 Feign 客户端指定日志记录策略 , 每个 Feign 客户端都会创建一个logger。
默认情况下, logger的名称是 Feign 接口的完整类名。需要注意的是, Feign 的日志打印只会对 DEBUG 级别做出响应。
我们可为 每个 Feign 客户端配置各自的 Logger.Level 对象,告诉 Feign 记录哪些日志。Log­
ger.Level 的值有以下选择。

.NONE: 不记录任何日志( 默认值)。
.BASIC : 仅记录请求方法 、URL、响应状态代码以及执行时间。
.HEADERS: 记录 BASIC 级别的基础上, 记录请求和响应的 header。
.FULL: 记录请求和响应的header , body 和元数据。

为前面编写的UserFeignClient 添加日志打印, 将它的日志级 别设置为FULL。
1 找到 comsumer 项目
2 编写 Feign 配置类创建一个包config

import feign.Logger;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class MyConfiguration {
    @Bean
    Logger.Level feignLoggerLevel(){
        return Logger.Level.FULL;
        /*
        full:返回所有日志
        NONE:不返回日志
        BASIC:
        HEADERS:
         */
    }
}

3 修改 Feign 的接口, 指定配置类

@FeignClient(name = "provider",configuration = MyConfiguration.class)
@Component
public interface UserFeignClient {
    @RequestMapping("user/{id}")
    public User findById(@PathVariable(value = "id") Integer id);
    //restful传多个参
    @RequestMapping("search/{id}/{username}/{name}")
    public User search(@PathVariable(value = "id") Integer id,@PathVariable("username") String username,@PathVariable("name") String name);
    @RequestMapping("search2")
    public User search2(@RequestParam("id") Integer id, @RequestParam("username") String username, @RequestParam("name") String name);
}

4 在 application.yml 中添加以下内容, 指定 Feign 接口的日志级别为DEBUG:

logging:
  level:
    com.itzz.springcloudconsumer: DEBUG

5 测试
重启后访问
在这里插入图片描述

2020-07-20 15:10:55.922 DEBUG 15124 --- [nio-8010-exec-1] c.i.s.api.UserFeignClient                : [UserFeignClient#findById] <--- HTTP/1.1 200 (433ms)
2020-07-20 15:10:55.922 DEBUG 15124 --- [nio-8010-exec-1] c.i.s.api.UserFeignClient                : [UserFeignClient#findById] content-type: application/json;charset=UTF-8
2020-07-20 15:10:55.922 DEBUG 15124 --- [nio-8010-exec-1] c.i.s.api.UserFeignClient                : [UserFeignClient#findById] date: Mon, 20 Jul 2020 07:10:55 GMT
2020-07-20 15:10:55.922 DEBUG 15124 --- [nio-8010-exec-1] c.i.s.api.UserFeignClient                : [UserFeignClient#findById] transfer-encoding: chunked
2020-07-20 15:10:55.922 DEBUG 15124 --- [nio-8010-exec-1] c.i.s.api.UserFeignClient                : [UserFeignClient#findById] 
2020-07-20 15:10:55.925 DEBUG 15124 --- [nio-8010-exec-1] c.i.s.api.UserFeignClient                : [UserFeignClient#findById] {"id":1,"username":"account1","name":"张 三","age":20,"balance":100.00}
2020-07-20 15:10:55.925 DEBUG 15124 --- [nio-8010-exec-1] c.i.s.api.UserFeignClient                : [UserFeignClient#findById] <--- END HTTP (73-byte body)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值