拨开荷叶行,寻梦已然成。仙女莲花里,翩翩白鹭情。
IMG-LOGO
主页 文章列表 Feign 日志配置

Feign 日志配置

白鹭 - 2021-11-19 2390 0 2

1. 概述

在本教程中,我们将描述如何让Feign 客户端登录到我们的Spring Boot 应用程序。此外,我们将看看它的不同类型的配置。要复习Feign 客户端,请查看我们的综合指南。

2. 假客户端

**Feign **使用Feign 客户端,我们摆脱了样板代码来发出HTTP API 请求。我们只需要放入一个带注释的接口。因此,实际的实现将在运行时创建。

3. 日志配置

Feign 客户端日志记录帮助我们更好地查看已发出的请求。 application. package中包含我们的 feign 客户端的class或包的 Spring Boot 日志记录级别设置为DEBUG properties文件.


让我们为一个类设置日志级别属性:

logging.level.<packageName>.<className> = DEBUG

或者,如果我们有一个包含所有 feign 客户端的包,我们可以为整个包添加它:

logging.level.<packageName> = DEBUG

接下来,我们需要为 feign 客户端设置日志级别。请注意,上一步只是为了启用日志记录。


有四种日志记录级别可供选择:

  • NONE:不记录(默认)

  • BASIC:记录请求方法和 URL 以及响应状态代码和执行时间

  • HEADERS:记录基本信息以及请求和响应标头

  • FULL :记录请求和响应的标头、正文和元数据

我们可以通过 java 配置或在我们的属性文件中配置它们。

3.1. Java配置

我们需要声明一个配置类,我们称之为FeignConfig :

public class FeignConfig { @Bean
 Logger.Level feignLoggerLevel() { return Logger.Level.FULL;
 }
 }

之后,我们将配置类绑定到我们的假客户端类FooClient :

@FeignClient(name = "foo-client", configuration = FeignConfig.class)
 public interface FooClient { // methods for different requests
 }

3.2.使用属性

第二种方法是在我们的application.properties.让我们在这里引用我们的假客户端的名称,在我们的例子中是foo-client :

feign.client.config.foo-client.loggerLevel = full

或者,我们可以覆盖所有 feign 客户端的默认配置级别:

feign.client.config.default.loggerLevel = full

4. 例子

在这个例子中,我们配置了一个客户端来读取JSONPlaceHolder APIs 。我们将在 feign 客户端的帮助下检索所有用户。


下面,我们将声明UserClient类:

@FeignClient(name = "user-client", url="https://jsonplaceholder.typicode.com", configuration = FeignConfig.class)
 public interface UserClient { @RequestMapping(value = "/users", method = RequestMethod.GET)
 String getUsers();
 }

们将使用我们在配置部分创建FeignConfig请注意,日志记录级别仍然是Logger.Level.FULL 。


让我们看看当我们调用/users时日志的外观:

2021-05-31 17:21:54 DEBUG 2992 - [thread-1] com.baeldung.UserClient : [UserClient#getUsers] ---> GET https://jsonplaceholder.typicode.com/users HTTP/1.1
 2021-05-31 17:21:54 DEBUG 2992 - [thread-1] org.1ju.UserClient : [UserClient#getUsers] ---> END HTTP (0-byte body) 2021-05-31 17:21:55 DEBUG 2992 - [thread-1] org.1ju.UserClient : [UserClient#getUsers] <--- HTTP/1.1 200 OK (902ms) 2021-05-31 17:21:55 DEBUG 2992 - [thread-1] org.1ju.UserClient : [UserClient#getUsers] access-control-allow-credentials: true
 2021-05-31 17:21:55 DEBUG 2992 - [thread-1] org.1ju.UserClient : [UserClient#getUsers] cache-control: max-age=43200
 2021-05-31 17:21:55 DEBUG 2992 - [thread-1] org.1ju.UserClient : [UserClient#getUsers] content-type: application/json; charset=utf-8
 2021-05-31 17:21:55 DEBUG 2992 - [thread-1] org.1ju.UserClient : [UserClient#getUsers] date: Mon, 31 May 2021 14:21:54 GMT // more headers
 2021-05-31 17:21:55 DEBUG 2992 - [thread-1] org.1ju.UserClient : [UserClient#getUsers] [
 { "id": 1, "name": "Leanne Graham", "username": "Bret", "email": "[email protected]", // more user details
 }, // more users objects
 ] 2021-05-31 17:21:55 DEBUG 2992 - [thread-1] org.1ju.UserClient : [UserClient#getPosts] <--- END HTTP (5645-byte body)

日志的第一部分,我们可以看到记录request带有他的 HTTP GET 方法的 URL 端点。在这种情况下,因为它是一个 GET request ,所以我们没有请求正文。


第二部分包含response 。它显示response. headers和body


5. 结论

在这个简短的教程中,我们研究了 Feign 客户端日志记录机制以及如何启用它。我们看到有多种方法可以根据我们的需要配置它。




标签:

0 评论

发表评论

您的电子邮件地址不会被公开。 必填的字段已做标记 *