OpenFeign 提供了日志打印功能,以方便我们对服务端接口调用情况的监控和输出。
<br/>
>[info]提醒:下面的代码、或配置都是在客户端进行。
配置步骤如下:
**1. 配置日志级别**
```java
@Configuration
public class FeignConfig {
/**
* 日志级别可选值如下:
* NONE: 默认的,不显示任何日志。
* BASIC: 仅记录请求方法、URL、 响应状态码及执行时间。
* HEADERS: 除了BASIC中定义的信息之外,还有请求和响应的头信息。
* FULL: 除了HEADERS中定义的信息之外,还有请求和响应的正文及元数据。
*/
@Bean
public Logger.Level feignLoggerLevel() {
return Logger.Level.FULL;
}
}
```
**2. 开启日志功能**
```yml
logging:
level:
assemb.payment.api.**: debug
```
**3. 测试效果**
客户端调用 OrderClient 接口访问服务端服务,客户端控制台会打印如下服务端接口信息。
```
...: [OrderClient#findById] ---> GET http://assemb-server-payment/order/findById/99 HTTP/1.1
...: [OrderClient#findById] ---> END HTTP (0-byte body)
...: [OrderClient#findById] <--- HTTP/1.1 200 (143ms)
...: [OrderClient#findById] connection: keep-alive
...: [OrderClient#findById] content-type: application/json
...: [OrderClient#findById] date: Wed, 20 Sep 2023 10:09:31 GMT
...: [OrderClient#findById] keep-alive: timeout=60
...: [OrderClient#findById] transfer-encoding: chunked
...: [OrderClient#findById]
...: [OrderClient#findById] {"instance-id":"assemb-server-payment8001","id":99}
...: [OrderClient#findById] <--- END HTTP (51-byte body)
```