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

news2024/11/19 19:18:05

我的后端学习大纲

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.coloradmin.cn/o/2132562.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vue3【实战-组件封装】图文卡片

效果预览 技术要点 图片宽高比固定为 16:9,展示方式为 object-fit: cover通过 v-bind 实现父组件向子组件的批量传参单行文本超长显示省略号 white-space: nowrap; overflow: hidden; text-overflow: ellipsis; title 属性实现鼠标悬浮显示文本完整内容 范例代码 …

HarmonyOS开发之使用Picker(从相册选择图片),并且通过Swiper组件实现图片预览

一:效果图: 二:添加依赖 import picker from ohos.file.picker; 三:创建showDialog showDialog() {AlertDialog.show({message: 从相册选择,alignment: DialogAlignment.Bottom,offset: { dx: 0, dy: -12 },primaryButton: {val…

Java面试、技巧、问题、回复,资源面面观

入门 先了解一下面试流程 复习 Java 基础知识: 温习 Java 编程的核心概念,包括数据类型、变量、循环、数组和面向对象的编程原则。数据结构和算法: 加强您对 Java 编程中使用的基本数据结构和算法的理解。练习编码: 在各种平台上解…

PHP一键约课高效健身智能健身管理系统小程序源码

一键约课,高效健身 —— 智能健身管理系统让健康触手可及 🏋️‍♀️ 告别繁琐,一键开启健身之旅 你还在为每次去健身房前的繁琐预约流程而烦恼吗?现在有了“一键约课高效健身智能健身管理系统”,所有问题都迎刃而解…

YARN----调度策略

Yarn中,负责给应用分配资源的就是Scheduler 在Yarn中有三种调度器可以选择:FIFO Scheduler ,Capacity Scheduler,Fair Scheduler FIFO Scheduler 先进先出策略 在进行资源分配的时候,先给队列中最先上的应用进行分配…

springboot从分层到解耦

注释很详细,直接上代码 三层架构 项目结构 源码: HelloController package com.amoorzheyu.controller;import com.amoorzheyu.pojo.User; import com.amoorzheyu.service.HelloService; import com.amoorzheyu.service.impl.HelloServiceA; import o…

GoogleSQL:SQL 中的 Pipe 语法

这些是我根据论文 SQL Has Problems 编写的笔记。我们可以修复它们:SQL 中的 Pipe 语法 TL博士 SQL 长期以来一直是结构化数据处理的主导语言,通过本文,GoogleSQL 团队引入了一种新的管道结构化数据流语法,该语法显著提高了 SQL …

自学前端靠谱吗?

很多同学都会对自学前端持怀疑态度,这靠谱吗? 靠自学能学得会?一听就不靠谱,一定是骗子。 但实际上,大家都掉入一个错觉当中了。。。 一个天大的错觉 指望公司教你 在大厂,会有培训体系,会…

51单片机快速入门之定时器和计数器

51单片机快速入门之定时器 断开外部输入 晶振振荡 假设为 12MHz 12分频之后,为1MHz 当其从0-65536 时,需要65536μs 微秒 也就是65.536ms 毫秒 溢出(值>65536 时)>中断>执行中断操作 假设需要1ms后产生溢出,则需要设置初始值为64536 此时定时器会从 64536 开始计…

AD6120 60V降压芯片 2A的电流 适用于48V降12/5v 高效率转换

AD6120是一款电流模式单片降压开关稳压器,输入电压范围为5V~60V,可在宽输入电压范围内提供2A的连续输出电流,具有优异的负载和线路调节能力。在轻负载下,该稳压器以低频率运行,以保持高效率和低输出纹波 。电流模式控制…

性能测试-jmeter连接数据库(十七)...

百度服务器域名:www.baidu.com 百度的IP:110.242.68.3(使用ping www.baidu.com) jdbc:mysql://211.103.136.244:7061/test_db: mysql是数据库类型211.103.136.244是服务器IP7061是服务器端口号test_db是服务器的数据库 一、为…

Vite项目中的懒加载介绍

概述 import.meta 元属性将特定上下文的元数据暴露给 JavaScript 模块。它包含了这个模块的信息,例如这个模块的 URL。在vue3项目中,用的比较多的是通过import.meta.env来获取环境变量。而本文将要介绍的import.meta.glob和import.meta.env都是vite提供…

【零基础学习CAPL】——CRC值监控测试

🙋‍♂️【零基础学习CAPL】系列💁‍♂️点击跳转 ——————————————————————————————————–—— 从0开始学习CANoe使用 从0开始学习车载车身 相信时间的力量 星光不负赶路者,时光不负有心人。 目录 1.概述2.需求介绍3.算法4.逻辑判断5.测…

VS2022中文字符输出为乱码的解决

一、问题 vs2022输出中文时,出现乱码现象 二、解决方案 把文件的字符编码格式改为utf-8格式 选择工具,点击自定义 选择命令,点击添加命令 选择文件,点击高级保存选项,然后点击确定 点击高级保存选项 选择utf-8编…

Android10源码刷入Pixel2以及整合GMS

一、ASOP源码下载 具体可以参考我之前发布的文章 二、下载相关驱动包 这一步很关键,关系到编译后的镜像能否刷入后运行 下载链接:Nexus 和 Pixel 设备的驱动程序二进制文件 如下图所示,将两个驱动程序上传到Ubuntu服务器,并进行解压,得到两个脚本: 下载解压后会有两…

华为SMU02B1智能通信电源监控单元模块简介

华为SMU02B1是一款智能通信电源监控单元模块,专为5G嵌入式机框设计,它在通信电源管理领域扮演着重要角色。以下是对该产品的详细介绍: 一、产品概述 主要功能:华为SMU02B1能够监控和管理通信电源系统,提供站点监控功能…

QLExpress规则引擎简述;字符串公式/脚本运算

概述 在业务中会遇到一些场景的运算方式不是固定的,而且内容不是有规律的,无法落库到表中(强行落库后也需要针对该内容硬编码写一段特殊的查询方式); 这个时候将这部分计算抽取出来,用一个动态的脚本去执…

Spring web mvc入门练习

对于Spring方面的知识重在多练习 目录 一、计算器 1、前端界面 2、约定前后端交互接口 3、服务器代码 二、用户登录 前端代码 服务器代码 三、留言板 后端代码 前端代码 一、计算器 我们需要通过前后端的交互最终完成这样的界面以及完成需求 1、前端界面 因为主要…

windows系统离线搭建darknet

没有网的情况下采用将安装包全部都下载下来,再安装的方式。darknet在windows上编译问题比较多,经历了3天的踩坑,终于搭建好。。。下面简单记录一下安装过程。 1.下载cuda,cudnn,anaconda,opencv,opencv_python,vs。安装顺序&…

[Redis] Redis中的Hash类型和List类型

🌸个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 🏵️热门专栏: 🧊 Java基本语法(97平均质量分)https://blog.csdn.net/2301_80050796/category_12615970.html?spm1001.2014.3001.5482 🍕 Collection与…