我正在使用以下配置来启用使用 feign 进行的 API 调用的日志记录
#Feign properties
feign:
client:
config:
default:
loggerLevel: full
我的应用程序正在调用 3 个 API,并且 feign 正在为所有 3 个 API 正确记录请求和响应 JSON。我想为其中一个 API 禁用此日志记录。您能否告知必要的配置。提前感谢
我正在使用以下配置来启用使用 feign 进行的 API 调用的日志记录
#Feign properties
feign:
client:
config:
default:
loggerLevel: full
我的应用程序正在调用 3 个 API,并且 feign 正在为所有 3 个 API 正确记录请求和响应 JSON。我想为其中一个 API 禁用此日志记录。您能否告知必要的配置。提前感谢
如果您有 3 个不同的 feign 客户端用于 3 个 API,那么您可以简单地以这种方式覆盖日志记录级别(假设您的 feign 客户端称为“feignClient2”):
#Feign properties
feign:
client:
config:
default:
loggerLevel: full
feignClient2:
loggerLevel: none
但是如果你有一个 3 个端点的 feign 客户端,那么任务就会变得更加复杂。您可以继承feign logger类(或它的任何子类,fe Slf4jLogger,如果您现在使用它)并覆盖其logRequest
和方法以不为特定端点记录任何内容(您可以分别从和方法参数logAndRebufferResponse
获取所需的信息)。然后使用您自己的记录器添加bean:request
response
FeignLoggerFactory
@Bean
public FeignLoggerFactory feignLoggerFactory() {
return new DefaultFeignLoggerFactory(new CustomLogger());
}
它将覆盖 FeignClientsConfiguration 的FeignLoggerFactory
默认值。
总之,我建议您使用第一个选项(使用单独的 feign 客户端)。但是,如果您选择第二个,如果您提供代码示例,我可以帮助您做到这一点。