【问题标题】:Is there a way to log only the body with feign spring client?有没有办法用假装弹簧客户端只记录身体?
【发布时间】:2019-12-25 16:57:02
【问题描述】:

有没有办法用 feign spring 客户端只记录身体? 使用 Log.level 我似乎只能包含带有完整日志记录的正文,在这种情况下,它也会打印标题。 我不想在日志中看到。

【问题讨论】:

    标签: spring-boot feign openfeign


    【解决方案1】:

    默认的Logger 使用Log.Level 来控制记录的内容并以累加的方式工作。这意味着上升级别会记录更多信息。要自定义此行为,您需要提供自己的 Logger 实现。具体来说,您可以扩展其中一个包含的记录器并自定义 logAndRebufferResponse 方法:

    public class MyLogger extends JavaLogger {
         protected Response logAndRebufferResponse(String configKey,
                                            Level logLevel,
                                            Response response,
                                            long elapsedTime) {
            // only log the response data, skip the headers
         }
    }
    

    接下来,将此记录器包含在您的 Feign 配置中。

     API api = Feign.builder()
                     .logger(new MyLogger())
                     .logLevel(Logger.Level.FULL)
                     .target(API.class, "https://api.example.com");
    

    这个 Feign Client 的所有实例现在都将使用您的记录器。

    【讨论】:

      猜你喜欢
      • 2019-10-02
      • 2021-02-09
      • 2011-07-14
      • 2016-08-24
      • 2013-11-23
      • 2016-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多