【发布时间】:2019-12-25 16:57:02
【问题描述】:
有没有办法用 feign spring 客户端只记录身体? 使用 Log.level 我似乎只能包含带有完整日志记录的正文,在这种情况下,它也会打印标题。 我不想在日志中看到。
【问题讨论】:
标签: spring-boot feign openfeign
有没有办法用 feign spring 客户端只记录身体? 使用 Log.level 我似乎只能包含带有完整日志记录的正文,在这种情况下,它也会打印标题。 我不想在日志中看到。
【问题讨论】:
标签: spring-boot feign openfeign
默认的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 的所有实例现在都将使用您的记录器。
【讨论】: