美文网首页
feign日志处理

feign日志处理

作者: Jabwin | 来源:发表于2019-06-29 09:46 被阅读0次

使用了slf4j来输出日志。
FeignConfig.java

import feign.Logger;
import feign.Request;
import feign.Response;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.io.IOException;
/*************************************************************
 * Feign日志配置类:
 * @author Jabwin
 *************************************************************
 */
@EnableFeignClients
@Configuration
public class FeignConfig
{
    @Value("${feign.logout}")
    private boolean isLogOut;

    @Bean
    Logger.Level feignLoggerLevel()
    {
        return Logger.Level.FULL;
    }

    @Bean
    Logger myFeign()
    {
        return new Logger()
        {
            private final org.slf4j.Logger logger = LoggerFactory.getLogger(org.slf4j.Logger.class);
            @Override
            protected void logRequest(String configKey, Level logLevel, Request request)
            {
                if (logger.isInfoEnabled())
                {
                    super.logRequest(configKey, logLevel, request);
                }
            }

            @Override
            protected Response logAndRebufferResponse(String configKey, Level logLevel, Response response, long elapsedTime)
                    throws IOException
            {
                if (logger.isInfoEnabled())
                {
                    return super.logAndRebufferResponse(configKey, logLevel, response, elapsedTime);
                }
                return response;
            }
            @Override
            protected void log(String s, String s1, Object... objects)
            {
                if (isLogOut && logger.isInfoEnabled())
                {
                    logger.info(String.format(methodTag(s) + s1, objects));
                }
            }
        };
    }
}

application.properties

# feign配置
feign.httpclient.enabled=true
# 暂时关闭熔断器
feign.hystrix.enabled=false
feign.logout=true
# ribbon配置
ribbon.eureka.enabled=true
ribbon.ConnectTimeout=60000
ribbon.ReadTimeout=60000
# ribbon策略
ribbon.NFLoadBalancerRuleClassName=com.netflix.loadbalancer.ZoneAvoidanceRule

# 关闭重试
ribbon.OkToRetryOnAllOperations=false

使用:在feign的接口@FeignClient注解中上加入configuration = {FeignConfig.class}

相关文章

  • feign日志处理

    使用了slf4j来输出日志。FeignConfig.java application.properties 使用:...

  • 【微服务】- Spring Cloud Feign(声明式服务调

    目录: 搭建Spring-Cloud-Feign-Client Feign 配置压缩 Feign 日志配置 Spr...

  • SpringCloud - Feign - 基本使用

    内容:springcloud feign 的引入、使用及日志打印 feign包名 - springcloudorg...

  • SpringCloud组件:Feign之日志输出

    Feign之日志输出 在我们日常开发过程中,经常会查看日志解决问题,那么Feign是不是也有日志输出呢?答案:是的...

  • 谈谈feign

    Feign的前世今生 Feign是什么? Feign的工作机制 处理注解 解析参数 构造http请求模板 发送请求...

  • feign 使用

    1、支持feign 2、使用,支持注解 3、失败熔断处理 4、拦截器设置 5、错误码设置 6、日志设置 四个级别 ...

  • feign笔记

    1.Feign的组成 2.细粒度配置Feign 使用自定义Feign的日志级别来做事例 java代码方式: 只需要...

  • SpringCloud-Feign[微服务日志处理]

    在微服务中,有时我们需要查看服务之前的调用情况,如下,我们想要查看consumer调用provider的情况,浏览...

  • Feign

    在Spring Cloud项目中我们常常使用Feign进行远程调用,在默认情况下Feign是没有调用日志输出的,这...

  • 自定义基于Hystrix的Feign全局断路器扩展

    在使用Feign的时候,每一个Feign接口都需要定义fallback或者fallbackFactory来处理熔断...

网友评论

      本文标题:feign日志处理

      本文链接:https://www.haomeiwen.com/subject/gopucctx.html