
Spring Cloud Feign 之日志自定义扩展
环境信息: java 1.8、Spring boot 1.5.10.RELEASE、spring cloud-Edgware.SR3、maven 3.3+
与外部HTTP接口交互时需要记录一些请求和响应日志来排查问题,虽然Feign支持但它的日志是Debug级别,并不符合我们在生产中使用INFO级别日志要求,所以这章介绍下自定义日志输出。
分析Spring Cloud Feign 默认日志
首先看下spring cloud feign 对日志输出的处理
package org.springframework.cloud.netflix.feign;
import feign.Logger;
/**
* Allows an application to use a custom Feign {@link Logger}.
*
* @author Venil Noronha
*/
public interface FeignLoggerFactory {
/**
* Factory method to provide a {@link Logger} for a given {@link Class}.
*
* @param type the {@link Class} for which a {@link Logger} instance is to be created
* @return a {@link Logger} instance
*/
public Logger create(Class<?> type);
}
通过源码我们知道spring cloud feign 已经对feign的日志输出这块做了扩展,当然feign本身也可以,这里针对spring cloud feign 进行讲解。
FeignLoggerFactory是Feign日志工厂接口类,DefaultFeignLoggerFactory是它的默认实现,spring cloud feign 就是用的 DefaultFeignLoggerFactory
@Override
public Logger create(Class<?> type) {
return this.logger != null ? this.logger : new Slf4jLogger(type);
}
默认日志工厂使用Slf4jLogger日志,然后我们看下源码
package feign.slf4j;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.IOException;
import feign.Request;
import feign.Response;
public class Slf4jLogger extends feign.Logger {
private final Logger logger;
public Slf4jLogger() {
this</

本文详细介绍了如何自定义Spring Cloud Feign的日志输出,从分析默认的日志处理到实现自己的日志工厂类,通过扩展实现INFO级别日志,增强了项目的可扩展性。并提供了样例代码和注意事项。
最低0.47元/天 解锁文章
690

被折叠的 条评论
为什么被折叠?



