日志是对事件、活动或过程的记录,通常按照时间顺序排列,它在很多领域都有广泛的应用。
在 Netflix Feign 中,SLF4JModule 模块允许将 Feign 的日志记录重定向到 SLF4J,使您可以轻松使用您选择的日志记录后端,如 Logback、Log4J 等。
如果要在 Feign 中使用 SLF4J,需将 SLF4JModule 模块和您选择的 SLF4J 绑定都添加到您的类路径中。然后,配置 Feign 使用 Slf4jLogger。详细步骤如下:
(1)添加依赖
<dependency> <groupId>io.github.openfeign</groupId> <artifactId>feign-slf4j</artifactId> <version>11.8</version> </dependency>
(2)配置 Slf4jLogger,代码如下:
package com.hxstrive.demo_netflix_feign.feign;
import com.hxstrive.demo_netflix_feign.entity.User;
import feign.*;
import feign.jackson.JacksonDecoder;
import feign.jackson.JacksonEncoder;
import feign.slf4j.Slf4jLogger;
@Headers("Custom-Header: SimpleFeign.java")
public interface LogFeign {
// 定义获取用户信息的方法
@RequestLine("POST /simple/encode")
@Headers("Content-Type: application/json")
User encode(User user);
// 创建Feign客户端实例的静态方法
static LogFeign create() {
return Feign.builder()
.encoder(new JacksonEncoder())
.decoder(new JacksonDecoder())
.logger(new Slf4jLogger()) // 在这里配置日志
.contract(new Contract.Default())
.target(LogFeign.class, "http://localhost:8090");
}
}启动服务,访问某个接口,输出日志如下:

上图中,发起了一个“POST /simple/encode”请求。