日志是对事件、活动或过程的记录,通常按照时间顺序排列,它在很多领域都有广泛的应用。
在 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”请求。