Spring Cloud OpenFeign - 日志配置

news2025/7/19 6:37:24

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

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

相关文章

[附源码]计算机毕业设计JAVA人力资源管理系统论文2022

[附源码]计算机毕业设计JAVA人力资源管理系统论文2022 项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM…

QT对象树和菜单操作

前言 可以与MFC框架进行比较,总结彼此的相同点和不同点,在此基础上再去学习其他的界面框架,达到增量学习的境界。 一.对象树 优点:当父对象被析构时,如果子对象没有被析构,QT的对象树机制会去析构它&…

pandas索引操作、赋值操作、排序以及Series排序和DataFrame排序

一、pandas索引操作 索引操作,使用索引选取序列和切片选择数据,也可以直接使用列名、行名称,或组合使用 直接使用行列索引:行列索引名顺序为先列再行,使用指定行列索引名,不能使用下标loc[行索引名&#…

MySQL数据库表空间回收问题

MySQL数据库表空间回收问题1. MySQL表空间回收2. MySQL表空间设置3. MySQL删除数据流程4. MySQL数据页空洞问题1. MySQL表空间回收 我们经常会发现一个问题,就是把表数据删除以后发现,数据文件大小并没有变化,这就是标题中所说的MySQL数据库…

Numpy数组中的维度和轴

维度究竟是行数还是列数? m维行向量:m维表示一行中有m列,由于是行向量,所以是1行m列n维列向量:n维表示一行中有n行,由于是列向量,所以是n行1列m维向量:看书的习惯了,一般…

APS生产计划排产 — 排产结果拉动模具工装需求计划

APS生产计划排产系统,对所有资源具有同步的,实时的,具有约束能力的,模拟能力,不论是物料,机器设备,人员,供应,客户需求,运输等影响计划因素。不论是长期的或短…

【CNN-SVM回归预测】基于CNN-SVM实现数据回归预测附matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。 🍎个人主页:Matlab科研工作室 🍊个人信条:格物致知。 更多Matlab仿真内容点击👇 智能优化算法 …

JavaWeb开发之——多表查询(21)

一 概述 多表查询—简介多表查询—内连接&外连接多表查询—子查询 二 多表查询—简介 2.1 概念 多表查询顾名思义就是从多张表中一次性的查询出我们想要的数据。 2.2 SQL数据准备 DROP TABLE IF EXISTS emp; DROP TABLE IF EXISTS dept; # 创建部门表 CREATE TABLE de…

Word2Vec 实践

Word2Vec 实践 gensim库使用 这里的Word2Vec借助 gensim 库实现,首先安装pip install gensim3.8.3 from gensim.models.word2vec import Word2Vecmodel Word2Vec(sentencesNone, size100, alpha0.025, window5, min_count5,max_vocab_sizeNone, sample1e-3, …

【Java第34期】:Bean的六种作用域

作者:有只小猪飞走啦 博客地址:https://blog.csdn.net/m0_62262008?typeblog 内容:介绍Bean的六种作用域的效果以及适用场景 文章目录前言一,作用域定义以及Bean的六种作用域是什么?二,singleton&#x…

深度学习(20):nerf论文翻译与学习

目录 1 Introduction 2 Related Work 3 Neural Radiance Field Scene Representation 4 Volume Rendering with Radiance Fields 5 Optimizing a Neural Radiance Field 5.1 Positional encoding 5.2 Hierarchical volume sampling 5.3 Implementation details 6 Resu…

项目问题参考答案

文章目录项目业务的功能:1 完成部门管理模块(大致有药剂部门,诊疗部门、护理部门,后勤部门),2.在药品搜索模块,根据业务的需求,我封装了正则实现了模糊搜索,防抖工具函数…

分享105个NET源码ASP源码,总有一款适合您

分享105个NET源码,总有一款适合您 源码下载链接:https://pan.baidu.com/s/1zFMIHX6juXdR2CaHMEr5mQ?pwdf5hz 提取码:f5hz 下面是文件的名字,我放了一些图片,文章里不是所有的图主要是放不下...,大家下载后…

力扣(LeetCode)81. 搜索旋转排序数组 II(C++)

线性探测二分查找 本题和 力扣(LeetCode)33. 搜索旋转排序数组(C) 的唯一区别是有重复元素,思考我们之前的二分条件,是根据 nums[0]nums[0]nums[0] 和 nums[mid]nums[mid]nums[mid] 判断 midmidmid 哪一端有序,但是现在可能出现 nums[0]nums…

Metabase学习教程:视图-7

创建数据透视表 了解如何使用Metabase中的不同数据库创建透视表。 什么是透视表?数据透视表是一种汇总和分组数据的表格方式。它们是分析师工具箱中的一个有价值的工具,因为它们是展示和重新安排大量信息的有效方法。它们的工作原理如下: …

中华传统文化题材网页设计主题:基于HTML+CSS设计放飞青春梦想网页【学生网页设计作业源码】

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

应用ceph块存储(ceph-13.2.10)

记录:334 场景:在CentOS 7.9操作系统上,部署ceph-13.2.10集群。应用ceph块设备(ceph block device);主要是创建ceph块存储、块存储分区、在线扩容、离线缩容、删除块存储等操作。 版本: 操作系统:CentOS…

gateway网关转发请求到nacos不同namespace和不同group下服务实例源码改造

问题 gateway转发请求到微服务,报错误页面,错误信息如下所示: There was an unexpected error (typeService Unavailable, status503). Unable to find instance xxx 报错信息显示找不到应用实例。即gateway无法在nacos实例中获取到路由配置的对应实例…

2021 XV6 5:Copy-on-Write Fork

目录 1.概述 2.修改uvmcopy 3.修改trap.c 4.引用计数机制 5.修改copyout 6.结果 1.概述 首先,这是一个很有意义的性能优化方案。 提出的背景是,如果我们每次fork的时候,都完整分配一系列物理页把父进程的内容拷贝进来,是一…

【SpringBoot】定制⾃⼰的 Health Indicator

Spring Boot ⾃带的 Health Indicator ⽬的 检查应⽤程序的运⾏状态 状态 DOWN - 503OUT_OF_SERVICE - 503UP - 200UNKNOWN - 200 机制 通过 HealthIndicatorRegistry 收集信息HealthIndicator 实现具体检查逻辑 配置项 management.health.defaults.enabledtrue|falsem…