一、注意
OpenFeign只会在FeignClient所在包的日志级别为DEBUG时,才会输出日志。而且其日志级别有4级:
-
NONE:不记录任何日志信息,这是默认值。
-
BASIC:仅记录请求的方法,URL以及响应状态码和执行时间
-
HEADERS:在BASIC的基础上,额外记录了请求和响应的头信息
-
FULL:记录所有请求和响应的明细,包括头信息、请求体、元数据。
Feign默认的日志级别就是NONE,所以默认我们看不到请求日志。
二、正式开始引入日志
首先需要在定义OpenFeignClient的模块下加一个配置(我这边是定义了一个单独的api模块来管理client),我写了一个DefaultClientLogConfig配置类
package com.xxx.api.config;
import feign.Logger;
import org.springframework.context.annotation.Bean;
public class DefaultFeignConfig {
@Bean
public Logger.Level feignLogLevel(){
//FULL等级是记录所有请求和响应的明细,包括头信息、请求体、元数据。
return Logger.Level.FULL; 返回FULL等级日志等级 注入到IOC容器中
}
}
然后在各服务的启动类上的EnableFeignClients注解上加入参数configuration=DefaultFeignConfig.class
@SpringBootApplication
@EnableFeignClients(basePackages = "com.xxx.api.client",defaultConfiguration = DefaultFeignConfig.class)
public class CartApp
{
public static void main( String[] args )
{
SpringApplication.run(CartApp.class, args);
}
}
这就大功告成了
ps:需要在properties.yaml中把模块下的日志等级改成debug的才能看到openfeign调用的接口信息