学科分类
目录
Spring Cloud

日志配置

在Spring Cloud Feign中,构建@FeignClient注解修饰客户端时,会为每一个客户端都创建一个表示日志对象的feign.Logger实例,我们可以利用该日志对象的DEBUG模式分析Feign的请求细节。

在application.yml文件中,可以使用logging.level.<FeignClient>参数配置格式开启指定Feign消费者的DEBUG日志,其中<FeignClient>指的是Feign消费者中需要开启DEBUG日志的接口的完整路径,比如针对本章中我们的Feign客户端接口FeignService(eureka-feign-client项目中的类)可以按如下配置开启:

     logginglevel:
            com.itheima.eurekafeignclient.service.FeignService: DEBUG

需要注意的是,如果只添加上述配置,还是无法输出DEBUG日志的,因为Feign客户端的Logger.Level对象默认定义为NONE级别,该级别不会记录任何Feign调用过程中的信息,所以我们需要调整它的级别。

Feign中的日志级别主要分为四类,具体介绍如下:

1.NONE:不记录任何信息。

2.BASIC:仅记录请求方法,URL以及响应状态码和执行时间。

3.HEADERS:除了记录BASIC级别的信息之外,还会记录请求和响应的头信息。

4.FULL:记录所有请求与响应的明细,包括头信息、请求体、元数据等。

接下来,为前面讲解的第一个Feign程序设置日志级别为FULL,记录消费者调用服务过程中的日志信息,具体步骤如下:
(1)在eureka-feign-client工程中创建一个配置类LogConfiguration,该配置类设置了日志级别,如例1所示。

例1 eureka-feign-client\src\main\java\com\itheima\eurekafeignclient\config\LogConfiguration.java

 1     import org.springframework.context.annotation.Bean;
 2     import feign.Logger;
 3     public class LogConfiguration {
 4         @Bean
 5         Logger.Level feignLoggerLevel(){
 6             return Logger.Level.FULL;
 7         }
 8     }

(2)在FeignService中使用@FeignClient设置要访问的服务提供者以及Feign的配置类,如例2所示。

例2 eureka-feign-client\src\main\java\com\itheima\eurekafeignclient\service\HelloService.java

 1     import com.itheima.eurekaribbonclient.config.LogConfiguration;
 2     import org.springframework.cloud.openfeign.FeignClient;
 3     import org.springframework.stereotype.Service;
 4     import org.springframework.web.bind.annotation.RequestMapping;
 5     import org.springframework.web.bind.annotation.RequestMethod;
 6     @FeignClient(name="eureka-provider",configuration=LogConfiguration.class)
 7     @Service
 8     public interface FeignService{
 9             @RequestMapping(value = "/hello", method = RequestMethod.GET)
 10             public String hello();
 11     }

(3)依次启动eureka-server、eureka-provider和eureka-ribbon-client。启动成功后,使用浏览器访问http://localhost:8764/hello, 发现eureka-feign-client的控制台中打印出了详细的日志信息,效果如图1所示。

图1 日志信息

点击此处
隐藏目录