Spring Cloud OpenFeign - - - > 日志级别配置

news2025/1/26 15:28:43

项目源码地址:https://download.csdn.net/download/weixin_42950079/87168704



OpenFeign 有 4 种日志级别:

  • NONE: 不记录任何日志,是OpenFeign默认日志级别(性能最佳,适用于生产环境)。
  • BASIC: 仅记录请求方法、URL、响应状态码、执行时间(适用于生产环境追踪问题)。
  • HEADERS: 在记录BASIC级别的基础上,记录请求和响应的header头部信息。
  • FULL: 记录请求响应的header、body 和 元数据(适用于开发和测试环境定位问题)。

1. 设置OpenFeign日志级别

需要注意的是:OpenFeign 的日志配置分为 全局配置局部配置

  • 全局配置:加了@Configuration注解表示全局配置,对所有服务起作用。
  • 局部配置:不加@Configuration注解表示局部配置,只针对指定的一个服务起作用。

1.1 全局配置

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

/**
 * 全局配置:加了@Configuration注解表示全局配置,对所有服务起作用
 * 局部配置:不加@Configuration注解表示局部配置,只针对指定的一个服务起作用
 */

@Configuration
public class feignConfig {

    /**
     * OpenFeign日志级别:
     *      NONE: 不记录任何日志,是OpenFeign默认日志级别(性能最佳,适用于生产环境)
     *      BASIC: 仅记录请求方法、URL、响应状态码、执行时间(适用于生产环境追踪问题)
     *      HEADERS: 在记录BASIC级别的基础上,记录请求和响应的header头部信息
     *      FULL: 记录请求响应的header、body 和 元数据(适用于开发和测试环境定位问题)
     */
    @Bean
    public Logger.Level feignLoggerLevel(){
        return Logger.Level.FULL;
    }
}

1.2 局部配置(一)

1)在配置类中,设置 OpenFeign 的日志级别,但记得不要添加@Configuration注解,否则就变成全局配置啦。

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

/**
 * 全局配置:加了@Configuration注解表示全局配置,对所有服务起作用
 * 局部配置:不加@Configuration注解表示局部配置,只针对指定的一个服务起作用
 */
public class feignConfig {

    /**
     * OpenFeign日志级别:
     *      NONE: 不记录任何日志,是OpenFeign默认日志级别(性能最佳,适用于生产环境)
     *      BASIC: 仅记录请求方法、URL、响应状态码、执行时间(适用于生产环境追踪问题)
     *      HEADERS: 在记录BASIC级别的基础上,记录请求和响应的header头部信息
     *      FULL: 记录请求响应的header、body 和 元数据(适用于开发和测试环境定位问题)
     */
    @Bean
    public Logger.Level feignLoggerLevel(){
        return Logger.Level.FULL;
    }
}

2)在 OpenFeign 接口中的@FeignClient注解中,添加configuration注解来指定该 OpenFeign 接口使用的配置类,配置类中包含对 OpenFeign 接口的扩展,如日志级别等…

import com.cd.order8010.config.OpenFeignConfig;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.RequestMapping;

/**
 * 添加 Feign 接口和方法:
 * * name:指定调用rest接口所对应的服务名
 * * path:指定调用rest接口所在的StockController指定的RequestMapping的路径,如果StockController上没有RequestMapping,则不指定path属性
 */
@FeignClient(name = "stock-service", path = "/stock", configuration = OpenFeignConfig.class)
public interface StockFeignService {


    // 声明要调用的rest接口对应的方法
    @RequestMapping("/reduce")
    public String reduce();

}

cd


1.2 局部配置(二)

  • 除了上面的方式可以进行 OpenFeign 局部配置之外,还可以直接在 yml 配置文件中进行 OpenFeign 局部配置。
#springboot默认日志级别是info,openfeign调试级别是debug级别,所以openfeign日志信息不会输出,需要将openfeign接口的调试级别设置成debug级别
logging:
    level:
        com.cd.order8010.feign: debug
        
# openfeign日志局部配置
feign:
    client:
        config:
          stock-service: #对应的微服务实例名称
              logger-level: FULL

2. 配置OpenFeign日志后,无法输出日志信息

OpenFeign 的默认日志级别是 NONE 级别,也就是不记录任何日志信息。但为什么按上面步骤将 OpenFeign 的日志级别设置成 FULL 级别后,还是没有打印日志信息呢?

  • 这是因为 OpenFeign 的调试日志是以 debug 级别来输出的。而 Spring Boot 默认的日志级别是 info 级别。info 级别是大于 debug 级别的,所以 debug 级别的日志(OpenFeign日志)不会输出。

所以,想要输出 OpenFeign 日志信息,需要将 OpenFeign 接口的日志调试级别设置成 debug 级别。这一步在application.yml配置文件中进行。
cd

#springboot默认日志级别是info,openfeign调试级别是debug级别,所以openfeign日志信息不会输出,需要将openfeign接口的调试级别设置成debug级别
logging:
    level:
        com.cd.order8010.feign: debug

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/39972.html

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

相关文章

五魔方、二阶五魔方

五魔方 五魔方是正十二面体魔方,其实和三阶魔方很像,用层先法就能复原,而且公式一模一样。 十二个面分为6个浅色面和6个深色面,所以浅色和深色各有一个中心面。 先复原浅色中心面这一层: 再复原浅色面的5个棱块&…

【GlobalMapper精品教程】030:栅格重采样案例教程(航测DSM)

本文讲解Globalmapper栅格重采样操作方法。数据为配套实验数据包中的data030.rar,航测内业生成的DSM,分辨率为0.04米,现在需要将其重采样为0.05米。 文章目录 一、重采样简介二、重采样操作一、重采样简介 栅格/影像数据进行配准或纠正、投影等几何变换后,像元中心位置通常…

超级记忆节目

一 问题描述 杰克逊被邀请参加电视节目“超强记忆”,参与者会玩一个记忆游戏。主持人先告诉参与者一个数字序列 {A1 , A2 , …, An },然后对该序列执行一系列操作或查询: ① ADD x y D ,表示对子序列 {Ax , …, Ay } 的每个数字…

Qt | Qt For Android、Qt5.14.2安卓开发环境搭建详细步骤

Qt | Qt For Android、Qt5.14.2安卓开发环境搭建详细步骤 目录Qt | Qt For Android、Qt5.14.2安卓开发环境搭建详细步骤1、简介2、软件下载1、Java SDK2、Android SDK3、Android NDK3、软件部署4、测试1、简介 搭建Qt For Android开发环境需要安装的软件有: JAVA …

第十四届蓝桥杯模拟赛(第二期)

写在前面 包含本次模拟赛的10道题题解能过样例,应该可以AC若有错误,欢迎评论区指出有疑问可私信我哈🫰🏻从2023开始暴力枚举每一个数,直到找到正确答案 start 2022def check(num) :t str(bin(num))if t[-6:] 0000…

核函数简介

文章目录基本概念概念1概念2:Kernel Func总结内积矩阵(Gram/Kernel Matrix)一些思考什么是有限正半定常用的Kernel FunctionsLinear KernelPolynomial KernelRBF(Gaussian) Kernel基本概念 概念1 高维空间存在可分的情况。 我们可以找一个映射函数送过…

【C++】vector的模拟实现

​🌠 作者:阿亮joy. 🎆专栏:《吃透西嘎嘎》 🎇 座右铭:每个优秀的人都有一段沉默的时光,那段时光是付出了很多努力却得不到结果的日子,我们把它叫做扎根 目录👉前言&…

程序员5分钟,带你看完24岁60W年薪架构师的简历,上面竟然写着精通JVM

前言 近期,看了一份24岁60W年薪架构师简历,上面写着他的求职意向所掌握的技能....... 所掌握的技能大部分写的都是精通!我不禁想问,大佬都这么强吗?你敢在简历上把所有的技能都写精通吗? 简历 下面来带…

matlab学习笔记(六)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 matlab学习笔记(六)一、信号基本运算的MATLAB实现二、计算两信号的卷积积分卷积积分三、两序列的卷积和一、信号基本运算的MATLAB实现 信号基本运算是…

pdf编辑软件哪个好?编辑pdf的软件分享一款,像word一样好用!

编辑文档时,很多人习惯用word及pdf进行办公,而使用中,经常会发现word和pdf之间,总是无法满足我们的切换需要。如果掌握一款可以编辑pdf的软件,像word一样简单使用,又能满足word的各种功能所需,那…

代理,反射,AOP

这篇文章主要讲三个点 1.设计模式中的代理模式 2.JAVA中的反射,因为用到了动态代理,这里举一下JDK代理和GCLIB代理的例子 3.介绍一下spring的aop是怎么用到了代理 1.设计模式中的代理模式 代理模式解决的问题: 在直接访问对象时带来的问题&am…

2022C语言知识点大全【详细、必备】

C语言期末必背知识点汇总【全】C语言最重要的知识点(一)《图片彩版》《C语言程序设计》必背基本知识点(二)C语言程序设计复习资料(三)C语言最重要的知识点(一)《图片彩版》 建议收藏…

Linux | 进程间通信 | system V共享内存 | 介绍和使用

文章目录system V共享内存介绍共享内存的创建shmget共享内存的获取shmctl,可用于共享内存的删除shmat && shmdt共享内存的使用Linux对system V的设计思路system V共享内存介绍 进程间通信的前提是:使不同进程看到同一份资源,在使用匿…

循环中的闭包

目录 1. 什么是闭包?闭包的作用? 1.1 可以访问 外部作用域 中变量的内部函数 1.2 闭包可以访问外部作用域中的变量及传参 2. 异步操作中 变量 的生命周期,取决于 闭包 的生命周期 2.1 Timer 定时器(保留到 定时器回调执行完…

阿里内部总结的微服务笔记,从入门到精通,初学者也能学的会

前言 随着互联网的发展,网站应用的规模也在不断的扩大,进而导致系统架构也在不断的进行变化。 一、系统架构演变 从互联网早起到现在,系统架构大体经历了下面几个过程: 单体应用架构--->垂直应用架构--->分布式架构--->SOA 架构-…

Flutter 单元测试例子

Flutter 单元测试例子 原文 https://medium.com/app-dev-community/flutter-unit-testing-with-simple-examples-9c07499e4079 前言 执行单元测试来验证软件的每个组件。因此,我们需要尽可能多地测试每个单独的微 widget 。这些都是由开发人员在开发阶段完成的。单元…

回归分析(2) 一元回归模型

如上所述,为了易于确定回归函数μ(x)中的未知参数,我们来讨论变量Y与x之间存在着线性相关关系的情形 散布在某一条直线的周围.于是,我们可以用线性回归方程 来描述Y与x之间的相关关系,并假设相应的误差(称为…

Go-zero框架学习+xorm+gorm配置

Go-zero框架学习xormgorm配置 文章目录Go-zero框架学习xormgorm配置一、框架介绍二、go-zero快速搭建1.下载go-zero2.安装goctl3.项目初始化4.测试5.项目结构6.快速生成rpc服务7.快速添加api接口8.快速生成model服务8.快速生成Dockerfile9.快速生成K8s部署文件三.golang的ORM框…

[go学习笔记.第十七章.redis的使用] 1.redis的使用

1.redis基本介绍 (1).Redis 是 NoSQL 数据库,不是传统的关系型数据库,官网: https://redis.io/ 和http://redis.cn/ (2).Redis: REmote Dlctionary Sever(远程字典服务器), Redis 性能非常高,单机能够达到 15w qps,通常适合做缓存…

刷爆力扣之盛最多水的容器

刷爆力扣之盛最多水的容器 HELLO,各位看官大大好,我是阿呆 🙈🙈🙈 今天阿呆继续记录下力扣刷题过程,收录在专栏算法中 😜😜😜 该专栏按照不同类别标签进行刷题&#xff…