openFeign默认是没有日志输出的,只有在open Feign所在的包的级别达到debug才会有输出,而且级别有四级。
四种日志级别:
OpenFeign只会在FeignClient所在包的日志级别为DEBUG时,才会输出日志。而且其日志级别有4级:
NONE:不记录任何日志信息,这是默认值。
BASIC:仅记录请求的方法,URL以及响应状态码和执行时间
HEADERS:在BASIC的基础上,额外记录了请求和响应的头信息
FULL:记录所有请求和响应的明细,包括头信息、请求体、元数据。
Feign默认的日志级别就是NONE,所以默认我们看不到请求日志。
如何设置日志级别?
一般情况有两种,一种是在配置文件设置,第二种是通过创建bean来实现
配置文件实现:
注意:如果是作为一个公共的模块,则不能使用配置文件来实现,配置文件需要springboot来启动和配置,但是公共模块并不需要启动类,所以client的公共模块只能通过创建bean实现
feign: httpclient: enabled: true client: config: default: logger-level: basic # 日志级别 connect-timeout: 5000 # 连接超时 单位ms read-timeout: 5000 # 读取超时 单位ms
代码实现:
一般情况下basic用的最多
package com.heima.api.config; import feign.Logger; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; /** * feign配置类 */ @Configuration public class DefaultFeignConfig { /** * feign日志级别 * @Logger.Level * BASIC: 响应状态行和请求和响应的头信息 * @return */ @Bean public Logger.Level defaultFeignLoggerLevel() { return Logger.Level.BASIC; // 日志级别 ,可以切换为其他的 } }
配置完之后,并没有生效,在之前编写扫包的时候也没有扫到config包,所以需要在调用open Feign的服务启动类上多加一个扫描项,生效区域有局部和全局
局部:
在api中针对某个服务进行配置
全局:
在调用api服务的启动类上添加全局配置,在这个服务中调取的所有服务,全部生效