目录
1 前言
OpenFeign在默认情况下是不输出日志的,这的确对我们的性能有着极大的好处。但是如果我们的项目发生问题,这也不方便我们的调试,接下来我将介绍如何开启OpenFeign的日志输出。
2 开启条件及日志级别
2.1 条件
OpenFeign只会在FeignClient所在包的日志级别为DEBUG时,才会输出日志。
直接看概念可能不方便理解,举个例子,我们的client所在的包为com.hmall.api.client
那么就可以定义com.hmall为debug级别的包,在导入该包的模块的application中进行设置如下:
logging: level: com.hmall: debug
这个配置项中,com.hmall是一个包名或者类名前缀,表示应用中所有属于com.hmall包(及其子包)的类的日志级别。将这个值设定为debug意味着对于这个包下的代码,日志系统会记录DEBUG级别及以上的所有日志信息。
2.2 日志级别
日志级别有4级:
NONE:不记录任何日志信息,这是默认值。
BASIC:仅记录请求的方法,URL以及响应状态码和执行时间
HEADERS:在BASIC的基础上,额外记录了请求和响应的头信息
FULL:记录所有请求和响应的明细,包括头信息、请求体、元数据。
3 具体操作
3.1 进行application的配置
在导入该包的模块的application中进行设置如下,要问为什么可看2.1:
logging:
level:
com.hmall: debug #包得换成自己的,是com.aaa就写com.aaa
3.2 编写config类
在api所在的模块中,编写config类如下,不加@Configuration:
public class DefaultFeignConfig {
@Bean
public Logger.Level feignLoggerLevel() {
return Logger.Level.FULL;
}
}
3.3 两种食用方法
3.3.1 局部生效
在某个
FeignClient中配置,只对当前FeignClient生效向@FeignClient中添加configuration = DefaultFeignConfig.class,其中DefaultFeignConfig.class我们刚才编写的config类,如下:
@FeignClient(value = "item-service", configuration = DefaultFeignConfig.class)
3.3.2 全局生效(推荐)
在
@EnableFeignClients中配置,针对所有FeignClient生效。向导入api模块的模块的启动类上的@EnableFeignClients中添加我们刚才编写的类名defaultConfiguration = DefaultFeignConfig.class,其中DefaultFeignConfig.class我们刚才编写的config类
@EnableFeignClients(defaultConfiguration = DefaultFeignConfig.class)
本文介绍了如何在OpenFeign中开启日志输出,包括开启条件(需设置FeignClient所在包的日志级别为DEBUG),提供两种操作方法:局部生效和全局生效,以及如何在application和config类中进行相应的配置。
1719

被折叠的 条评论
为什么被折叠?



