3-1Feign 自定义日志 · SpringCloud微服务实战 · 看云

1.自定义日志

导航

本节代码地址


我们在开发时候一般出现问题,需要将出错信息、异常信息以及正常的输入输出打印出来,以供我们更好的排查和解决问题,比如想看到接口的性能,就需要看Feign 的日志,那么如何让Feign 的日志展示出来呢?

1.1 添加日志的配置信息

新建FeignConfig类,并设置日志级别的输出信息

public class FeignConfig {

    
    @Bean
    Logger.Level feignLoggerLevel(){
        return Logger.Level.FULL;
    }
}

通过源码可 日志等级有

  • NONE: 不输出日志
  • BASIC: 只输出请求方法的URL 和响应状态码以及接口的请求时间
  • HEADERS :将 BASIC信息和请求头信息输出
  • FULL :输出完 的请求信息
    对应的源码如下所示
代码路径:feign.Logger
public static enum Level {
    NONE,
    BASIC,
    HEADERS,
    FULL;

    private Level() {
    }
}

1.2 @FeignClient的配置修改

之后将配置信息添加到Feign 的接口配置上面

@FeignClient(value = "fw-register-eureka-client",configuration = FeignConfig.class)
public interface EurekaFeignService {
    

    @GetMapping("/hello")
    String hello();
}

1.3 需要在application.yml中设置日志级别

com.yisu是设置包路径,在这个路径里面的debug信息都会被捕获到

logging:
  level:
    com.yisu: debug

1.4 重启应用并调用服务接口

Postman调用localhost:8771/feignInfo
可以在console控制台中看到如下DEBUG日志:

2019-12-28 15:14:55.857 DEBUG 6996 --- [nio-8771-exec-1] c.yisu.feign.service.EurekaFeignService  : [EurekaFeignService#hello] <--- HTTP/1.1 200 (682ms)
2019-12-28 15:14:55.857 DEBUG 6996 --- [nio-8771-exec-1] c.yisu.feign.service.EurekaFeignService  : [EurekaFeignService#hello] content-length: 10
2019-12-28 15:14:55.857 DEBUG 6996 --- [nio-8771-exec-1] c.yisu.feign.service.EurekaFeignService  : [EurekaFeignService#hello] content-type: text/plain;charset=UTF-8
2019-12-28 15:14:55.857 DEBUG 6996 --- [nio-8771-exec-1] c.yisu.feign.service.EurekaFeignService  : [EurekaFeignService#hello] date: Sat, 28 Dec 2019 07:14:55 GMT
2019-12-28 15:14:55.857 DEBUG 6996 --- [nio-8771-exec-1] c.yisu.feign.service.EurekaFeignService  : [EurekaFeignService#hello] 
2019-12-28 15:14:55.862 DEBUG 6996 --- [nio-8771-exec-1] c.yisu.feign.service.EurekaFeignService  : [EurekaFeignService#hello] hello:8763
2019-12-28 15:14:55.862 DEBUG 6996 --- [nio-8771-exec-1] c.yisu.feign.service.EurekaFeignService  : [EurekaFeignService#hello] <--- END HTTP (10-byte body)
2019-12-28 15:14:55.879  INFO 6996 --- [nio-8771-exec-1] c.y.f.controller.EurekaFeignController   : hello:8763
2019-12-28 15:14:56.670  INFO 6996 --- [erListUpdater-0] c.netflix.config.ChainedDynamicProperty  : Flipping property: fw-register-eureka-client.ribbon.ActiveConnectionsLimit to use NEXT property: niws.loadbalancer.availabilityFilteringRule.activeConnectionsLimit = 2147483647