前言
在开发java项目中,当我们进行feign性能调优时一般会用到feign连接池(apache httpClient或者OkHttp), 其中配置参数feign.client.config.provider.loggerLevel 则是指定日志级别.
一. feign的日志级别
NONE(默认):不记录任何日志,性能最佳,可用于生产环境;
BASIC:仅记录请求方法、URL、响应状态代码以及执行时间,适用于生产环境追踪问题;
HEADERS:在BASIC级别的基础上,记录请求和响应的header;
FULL:记录请求和响应的header、body和元数据,适用于开发测试定位问题,性能要次一些.
注意: 前提条件是在配置文件中,将日志级别设置为DEBUG。
二. 配置
2.1、配置类全局配置
在工程中增加一个配置类,如下设定日志级别,可作为全局配置
@Configuration
public class FeignConfig {
@Bean
public Logger.Level level() {
return Logger.Level.FULL;
}
}
2.2、配置类局部配置
首先将FeignConfig的@Configuration注解去掉,否则将是全局配置。
在@FeignClient中configuration属性赋值为FeignConfig.class
@FeignClient(path = "/user", value = "provider", configuration = FeignConfig.class)
public interface UserService {
@GetMapping("/list")
List<String> queryUser();
}
2.3、配置文件指定微服务配置
在配置文件中加入如下配置,其中provider为服务端服务名,此配置只对调用provider服务时生效。
feign.client.config.provider.loggerLevel=BASIC