通过SpringCloud构建微服务项目时,客户端通常使用Feign接口调用服务端方法。但是通常情况下客户端服务的日志中不会打印出调用相关的信息,如请求的url、入参、响应等。可以通过以下两种方式实现客户端调用Feign接口将相关信息记录到日志中。
方式一
1、创建Feign日志配置类
@Configuration
public class FeignConfiguration {
@Bean
Logger.Level feignLoggerLevel() {
// Feign的日志有四种级别,分别是NONE、BASIC、HEADERS、FULL,后面会具体介绍
return Logger.Level.FULL;
}
}
2、配置文件中增加如下配置,注意,日志级别一定要设置为debug,若设置为info、error都无效
# Feign接口全部在com.example.consumer.service包下
# 也可以写成logging.level.com.example.consumer.service.*=debug
# 若只打印某一个Feign接口(比如UserFeignService借口)的信息,还可以写成logging.level.com.example.consumer.service.UserFeignService=debug
logging.level.com.example.consumer.service=debug
方式二
2、配置文件中增加如下配置
feign.client.config.default.logger-level=full
logging.level.com.example.rtbootconsumer.service=debug
如上设置完后客户端便会打印相关日志,我们来看下效果。
Feign的四种日志级别
日志级别 | 打印内容 |
---|---|
NONE | 没有日志记录 |
BASIC | 日志仅记录请求方法、url、响应状态和执行时间 |
HEADERS | 日志记录基本信息(同BASIC)以及请求头和响应头信息 |
FULL | 日志记录请求和响应的头(headers)、体(body)、元数据(metadata)信息 |