Spring Cloud OpenFeign - - - > 日志配置

news2025/2/25 15:25:17

项目源码地址: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/39639.html

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

相关文章

BT - Unet:生物医学图像分割的自监督学习框架

BT-Unet采用Barlow twin方法对U-Net模型的编码器进行无监督的预训练减少冗余信息,以学习数据表示。之后,对完整网络进行微调以执行实际的分割。 BT-Unet由 Indian Institute of Information Technology Allahabad开发,发布在2022年的JML上 …

相关性质和条件变量-ReentrantLock详解(2)-AQS-并发编程(Java)

文章目录1 可重入2 可打断3 公平锁4 条件变量4.1 await()4.1.1 主方法4.1.2 addConditionWaiter()4.1.3 isOnSyncQueue()4.1.4 checkInterruptWhileWaiting()4.2 signal()4.2.1 主方法4.2.2 doSignal()4.2.3 transferForSignal()5 后记1 可重入 可重入在加锁中体现代码如下&am…

零经验,小白变大厨!

平时煮泡面都会翻车的老王      昨天在朋友圈po了一组美食图      朋友小聚,20分钟搞定一桌菜,嘻嘻。      我点开一看,嚯!      红烧里脊、糖醋排骨、油焖大虾、剁椒鱼头……个顶个的硬菜,而且色泽诱人看起来很好吃的样子,关键是居然20分钟搞定?      难…

2022 高教杯数学建模C题古代玻璃制品的成分分析与鉴别回顾及总结

2022 高教杯数学建模C题古代玻璃制品的成分分析与鉴别回顾及总结 Paper & Code:https://github.com/Fly-Pluche/2022-mathematical-modeling-C 希望可以施舍几个star⭐️ 国赛分工 我们三人都有主要的分工: 队员A主要负责二,三问的求解以及代码的编…

被问到可重入锁条件队列,看这一篇就够了!|原创

本文深入解读了高频面试点——ReentrantLock的条件队列使用方法及其原理。源码有详细注释,建议收藏阅读。点击上方“后端开发技术”,选择“设为星标” ,优质资源及时送达Jdk中独占锁的实现除了使用关键字synchronized外,还可以使用ReentrantL…

用HTML+CSS做一个简单的新闻门户 1页网页

⛵ 源码获取 文末联系 ✈ Web前端开发技术 描述 网页设计题材,DIVCSS 布局制作,HTMLCSS网页设计期末课程大作业 | 茶文化网站 | 中华传统文化题材 | 京剧文化水墨风书画 | 中国民间年画文化艺术网站 | 等网站的设计与制作 | HTML期末大学生网页设计作业,…

Web前端大作业—电影网页介绍8页(html+css+javascript) 带登录注册表单

HTML实例网页代码, 本实例适合于初学HTML的同学。该实例里面有设置了css的样式设置,有div的样式格局,这个实例比较全面,有助于同学的学习,本文将介绍如何通过从头开始设计个人网站并将其转换为代码的过程来实践设计。 精彩专栏推荐&#x1f4…

DevOps初学者的指南——阿里出品学习图册带你掌握高薪技术!

开篇 你是否想开始学习DevOps,或者愿意通过增加DevOps这一技能来转变你的职业生涯? 如果你的答案是肯定的,那么你就来对地方了 从初创企业到跨国企业,技术行业的每个细分领域都在改变其软件开发方法。DevOps工具和实践惊人地减…

【mysql 高级】explain的使用及explain包含字段的含义

explain的使用及explain包含字段的含义1.id2. select_type3.table4.type5.possible_keys6.key7.key_len8.ref9.rows10.Extra使用explain关键字可以模拟优化器执行SQL语句,从而知道MySQL是如何处理你的SQL语句的,从而分析你的查询语句或是表结构的性能瓶颈…

面向OLAP的列式存储DBMS-10-[ClickHouse]的常用数组操作

参考ClickHouse 中的数据查询以及各种子句 ClickHouse 数组的相关操作函数,一网打尽 在关系型数据库里面我们一般都不太喜欢用数组,但是在 ClickHouse 中数组会用的非常多,并且操作起来非常简单。ClickHouse 里面提供了非常多的函数&#x…

文本生成视频Make-A-Video,根据一句话就能一键生成视频 Meta新AI模型

Meta公司(原Facebook)在今年9月29日首次推出一款人工智能系统模型:Make-A-Video,可以从给定的文字提示生成短视频。 Make-A-Video研究基于文本到图像生成技术的最新进展,该技术旨在实现文本到视频的生成,可…

[附源码]Python计算机毕业设计高校第二课堂管理系统

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

第十章 二叉树的各种遍历

第十章:二叉树的前、中、后序遍历前期准备:一、前序遍历1、遍历的思路2、遍历代码3、遍历图示二、中序遍历1、遍历的思路2、遍历代码三、后序遍历1、遍历的思路2、遍历代码三、遍历的应用1、计算二叉树中的节点个数2、二叉树叶子节点的个数3、二叉树的深度4、二叉树…

EMC原理-传导(共模、差模)与辐射(近场、远场)详解

目录: 第一章、EMC概念介绍 第二章、感应干扰(近场) 第三章、辐射干扰(远场) 第四章、差模干扰 第五章、共模干扰 ------------------------------------------------------------------------------------------------------------------------ 第一章、EMC…

ceph块存储在线扩容

记录:339 场景:在CentOS 7.9操作系统上,部署ceph-13.2.10集群。应用ceph块设备(ceph block device);主要是创建ceph块存储和在线扩容相关操作。 版本: 操作系统:CentOS 7.9 ceph版本:ceph-1…

牛顿法(牛顿拉夫逊)配电网潮流计算matlab程序

牛顿法配电网潮流计算matlab程序 传统牛顿—拉夫逊算法,简称牛顿法,是将潮流计算方程组F(X)0,进行泰勒展开。因泰勒展开有许多高阶项,而高阶项级数部分对计算结果影响很小,当忽略一阶以上部分时,可以简化对…

向NS-3添加新模块_ns3.37添加新模块_ns3.37不同版本模块移植

使用ns3的时候,我们需要调用很多模块,比如对wifi的简单功能进行仿真时: ns-3.35_third.cc_ns-3网络仿真工具wifi脚本解析_wifi脚本网络拓扑_ns-3third脚本全注释_基础ns-3_ns-3入门_ns-3third脚本解析_Part1_Mr_liu_666的博客-CSDN博客Intro…

WinSock的I/O模型

目录 一、 套接字的非阻塞工作模式 1.阻塞与非阻塞模式的概念 2.阻塞模式下能引起阻塞的套接字函数 3.两种模式的比较 2. 套接字非阻塞模式的设置方法——ioctlsocket 函数 3. 非阻塞模式下的编程方法 4. 非阻塞模式服务器端程序和客户端程序 二、select模型 1. 套接字…

信息系统综合测试与管理

本文包括软件测试模型、测试技术和测试管理。 一、测试基础 1、软件测试模型 所谓测试模型(Test Model),是测试和测试对象的基本特征、基本关系的抽象。 1)V模型 V模型实际是软件开发瀑布模型的变种,它反映了测试…

CSDN第十期竞赛

比赛详情: 通过这次的周赛让我受益颇多,这次的题目都是平常练习题目的变形,这次的竞赛是十分有意义的,加强对练习题的强化。 两道模拟题: 目录 1.熊孩子拜访 2.走楼梯 1.熊孩子拜访 题目描述 已知存在一个长度为n的…