Netflix Feign 记录日志

日志是对事件、活动或过程的记录,通常按照时间顺序排列,它在很多领域都有广泛的应用。

在 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");
    }

}

启动服务,访问某个接口,输出日志如下:

08383c31d102604ba3533980f6737400_1730707636794-a0a04b2a-3ae9-4b00-b1ef-b0c40e7d90da_x-oss-process=image%2Fformat%2Cwebp.png

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

说说我的看法
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
公众号