【问题标题】:Disable Feign logging on some API calls在某些 API 调用上禁用 Feign 日志记录
【发布时间】:2020-04-05 16:06:07
【问题描述】:

我正在使用以下配置来启用使用 feign 进行的 API 调用的日志记录

#Feign properties
feign:
  client:
    config:
      default:
        loggerLevel: full      

我的应用程序正在调用 3 个 API,并且 feign 正在为所有 3 个 API 正确记录请求和响应 JSON。我想为其中一个 API 禁用此日志记录。您能否告知必要的配置。提前感谢

【问题讨论】:

    标签: spring spring-cloud-feign feign openfeign


    【解决方案1】:

    如果您有 3 个不同的 feign 客户端用于 3 个 API,那么您可以简单地以这种方式覆盖日志记录级别(假设您的 feign 客户端称为“feignClient2”):

    #Feign properties
    feign:
      client:
        config:
          default:
            loggerLevel: full   
          feignClient2:
            loggerLevel: none
    

    但是如果你有一个 3 个端点的 feign 客户端,那么任务就会变得更加复杂。您可以继承 feign logger 类(或它的任何子类,fe Slf4jLogger,如果您现在使用它)并覆盖其 logRequestlogAndRebufferResponse 方法以不为特定端点记录任何内容(您可以获得所需的分别来自requestresponse 方法参数的信息)。然后用你自己的记录器添加FeignLoggerFactory bean:

    @Bean
    public FeignLoggerFactory feignLoggerFactory() {
        return new DefaultFeignLoggerFactory(new CustomLogger());
    }
    

    它将覆盖FeignClientsConfiguration 中的默认FeignLoggerFactory

    总而言之,我建议您使用第一个选项(使用单独的 feign 客户端)。但是,如果您选择第二个,如果您提供代码示例,我可以帮助您完成。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-05-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-17
      • 2011-06-22
      • 2015-04-21
      相关资源
      最近更新 更多