当前位置: 首页 > article >正文

[000-01-008].第05节:OpenFeign高级特性-日志打印功能

我的后端学习大纲

SpringCloud学习大纲


1、日志打印功能:

  • 1.Feign 提供了日志打印功能,我们可以通过配置来调整日志级别,从而了解 Feign 中 Http 请求的细节,说白了就是对Feign接口的调用情况进行监控和输出

2、日志级别:

  • NONE:默认的,不显示任何日志
  • BASIC:仅记录请求方法、URL、响应状态码及执行时间
  • HEADERS:除了 BASIC 中定义的信息之外,还有请求和响应的头信息
  • FULL:除了 HEADERS 中定义的信息之外,还有请求和响应的正文及元数据
    在这里插入图片描述

3、配置开启日志功能:

3.1.配置日志bean

package com.atguigu.cloud.config;
import feign.Logger;
import feign.Retryer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class FeignConfig{
    @Bean
    public Retryer myRetryer(){
        return Retryer.NEVER_RETRY; //默认
    }

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

3.2.YML文件里需要开启日志的Feign客户端:

  • 1.公式(三段):logging.level + 含有@FeignClient注解的完整带包名及接口名+debug

在这里插入图片描述

  • 2.YML配置:
	# feign日志以什么级别监控哪个接口
	logging:
	  level:
	    com:
	      atguigu:
	        cloud:
	          apis:
	            PayFeignApi: debug 

3.3.测试查看后台日志:

a.带着压缩调用:

在这里插入图片描述

b.去掉压缩调用:

在这里插入图片描述

3.4测试重试机制的日志:

a.更改类FeignConfig.java,配置重试策略

package com.atguigu.cloud.config;

import feign.Logger;
import feign.Retryer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;


@Configuration
public class FeignConfig{
    @Bean
    public Retryer myRetryer(){
        //最大请求次数为3(1+2),初始间隔时间为100ms,重试间最大间隔时间为1s
        return new Retryer.Default(100,1,3);
    }
    @Bean
    Logger.Level feignLoggerLevel() {
        return Logger.Level.FULL;
    }
}

b.配置YML:

server:
  port: 80

spring:
  application:
    name: cloud-consumer-openfeign-order
  ####Spring Cloud Consul for Service Discovery
  cloud:
    consul:
      host: localhost
      port: 8500
      discovery:
        prefer-ip-address: true #优先使用服务ip进行注册
        service-name: ${spring.application.name}
    openfeign:
      client:
        config:
          default:
          #cloud-payment-service:
            #连接超时时间
                        connectTimeout: 2000
            #读取超时时间
                        readTimeout: 2000
      httpclient:
        hc5:
          enabled: true
      compression:
        request:
          enabled: true
          min-request-size: 2048
          mime-types: text/xml,application/xml,application/json
        response:
          enabled: true

# feign日志以什么级别监控哪个接口
logging:
  level:
    com:
      atguigu:
        cloud:
          apis:
            PayFeignApi: debug

c.测试:

  • 发送请求:http://localhost/feign/pay/get/1

d.控制台打印:

在这里插入图片描述

e.完整的YML:

server:
  port: 80

spring:
  application:
    name: cloud-consumer-openfeign-order
  ####Spring Cloud Consul for Service Discovery
  cloud:
    consul:
      host: localhost
      port: 8500
      discovery:
        prefer-ip-address: true #优先使用服务ip进行注册
        service-name: ${spring.application.name}
    openfeign:
      client:
        config:
          default:
            connectTimeout: 2000 #连接超时时间
                        readTimeout: 2000 #读取超时时间
           httpclient:
        hc5:
          enabled: true
      compression:
         request:
           enabled: true
           min-request-size: 2048
           mime-types: text/xml,application/xml,application/json
         response:
           enabled: true
          #cloud-payment-service:
            #connectTimeout: 4000 #连接超时时间
            #readTimeout: 4000 #读取超时时间

# feign日志以什么级别监控哪个接口
logging:
  level:
    com:
      atguigu:
        cloud:
          apis:
            PayFeignApi: debug

http://www.kler.cn/news/302727.html

相关文章:

  • C语言宏参数的使用
  • 【排序算法】之基数排序
  • 运维学习————GitLab的搭建和使用
  • 数组去重、数组扁平化
  • 解锁数字信任之门:SSL证书的安全之旅
  • uniapp业务实现
  • MATLAB-基于高斯过程回归GPR的数据回归预测
  • 解决CORS问题的两种方式——Django+vue
  • Linux中的scp 如何使用
  • 【STM32 Blue Pill编程】-定时器输入捕获与频率计数
  • 总结拓展九:SAP数据迁移(2)
  • Oracle Linux 8.10安装Oracle19c(19.3.0)完整教程
  • 视频监控平台是如何运作的?EasyCVR视频汇聚平台的高效策略与实践
  • HarmonyOS开发5.0【应用程序包】
  • AI大模型的架构演进与最新发展
  • git解决同时编辑一个文件的冲突
  • 设计模式之工厂模式(通俗易懂--代码辅助理解【Java版】)
  • 【Python】Python办公自动化案例(一):对比两个word文档并找出不同
  • Vue的slot插槽(默认插槽、具名插槽、作用域插槽)
  • 零宽字符应用场景及前端解决方案
  • 面试真题 | web自动化关闭浏览器,quit()和close()的区别
  • SpringBoot之基础Web开发
  • ubuntu22安装docker
  • iPhone 16正式亮相:5款配色 群青色抢眼
  • C++ 中的默认删除特征:管理资源与防止意外拷贝
  • 【通俗理解】二项分布的均值与方差——从成功与失败的概率看分布
  • python如何加速计算密集型任务2?
  • 【C#】DrawCurve的用法
  • 【C++开发中使用JSON的妙用】
  • JVM——Java虚拟机内存初识(面经篇之JVM内存)