广告
返回顶部
首页 > 资讯 > 后端开发 > Python >使用Feign logging 开启调用日志
  • 160
分享到

使用Feign logging 开启调用日志

2024-04-02 19:04:59 160人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

目录Feign logging开启调用日志Feign启用日志需求实现步骤Feign logging开启调用日志 application.yml 配置 logging: level

Feign logging开启调用日志

application.yml 配置

logging:
  level:
    yourproject.userClient: debug

FeignConfiguration

@Configuration
public class FeignConfiguration {
    @Bean
    Logger.Level feignLoggerLevel() {
        return Logger.Level.FULL;
    }
}

效果


参考官方:Http://cloud.spring.io/spring-cloud-openfeign/single/spring-cloud-openfeign.html#_feign_logging

Feign启用日志

需求

想追踪Feign客户端发送的数据.

Feign在构建被@FeignClient注解修饰的服务客户端时,会为每一个客户端都创建一个feign.Logger实例,这样就可以利用该日志对象的DEBUG模式来帮助分析Feign的请求细节。

实现步骤

1. 在application.yml中使用 logging.level.<Feign客户端对应的接口的全限定名> 的参数配置格式来开启指定客户端日志. 

logging:
  level:
    com:
      yc:
        SpringCloud2:
          service:
            IProductClientService: DEBUG   #注意这里是Feign客户端接口的完整路径,这是我们要监控日志的接口

2. 但由于Feign客户端默认的Logger.Level对象定义为NONE级别,因此需要对它进行调整.  Logger.Level的源码中规定了以下几个级别:

  public enum Level {
    // 不记录日志 (默认)。
    NONE,
    //只记录请求方法和URL以及响应状态代码和执行时间
    BASIC,
    //记录请求和应答的头的基本信息
    HEADERS,
    //记录请求和响应的头信息,正文和元数据
    FULL
  }

那么如何将级别从NONE修改过来呢?这里有两种方式:

1. 全局配置: 在应用主配置类中加入 Logger.Level的Bean的创建和托管,这里这个应用中所有的Feign客户端都会按这个日志级别. 

@SpringBootConfiguration
public class FeignLoGConfig {
    @Bean
    Logger.Level feignLoggerLevel(){
        return Logger.Level.FULL;
    }
}

运行 程序 [microservice-consumer-feign],查看输出结果。 

2020-10-16 15:14:45.634 DEBUG 15604 --- [NIO-9999-exec-1] c.y.s.service.IProductClientService      : [IProductClientService#listProduct] <--- HTTP/1.1 200 (799ms)
2020-10-16 15:14:45.634 DEBUG 15604 --- [nio-9999-exec-1] c.y.s.service.IProductClientService      : [IProductClientService#listProduct] cache-control: no-cache, no-store, max-age=0, must-revalidate
2020-10-16 15:14:45.634 DEBUG 15604 --- [nio-9999-exec-1] c.y.s.service.IProductClientService      : [IProductClientService#listProduct] connection: keep-alive
2020-10-16 15:14:45.634 DEBUG 15604 --- [nio-9999-exec-1] c.y.s.service.IProductClientService      : [IProductClientService#listProduct] content-type: application/JSON;charset=UTF-8
2020-10-16 15:14:45.634 DEBUG 15604 --- [nio-9999-exec-1] c.y.s.service.IProductClientService      : [IProductClientService#listProduct] date: Fri, 16 Oct 2020 07:14:45 GMT
2020-10-16 15:14:45.634 DEBUG 15604 --- [nio-9999-exec-1] c.y.s.service.IProductClientService      : [IProductClientService#listProduct] expires: 0
2020-10-16 15:14:45.634 DEBUG 15604 --- [nio-9999-exec-1] c.y.s.service.IProductClientService      : [IProductClientService#listProduct] keep-alive: timeout=60
2020-10-16 15:14:45.634 DEBUG 15604 --- [nio-9999-exec-1] c.y.s.service.IProductClientService      : [IProductClientService#listProduct] pragma: no-cache
2020-10-16 15:14:45.634 DEBUG 15604 --- [nio-9999-exec-1] c.y.s.service.IProductClientService      : [IProductClientService#listProduct] transfer-encoding: chunked
2020-10-16 15:14:45.634 DEBUG 15604 --- [nio-9999-exec-1] c.y.s.service.IProductClientService      : [IProductClientService#listProduct] x-content-type-options: nosniff
2020-10-16 15:14:45.634 DEBUG 15604 --- [nio-9999-exec-1] c.y.s.service.IProductClientService      : [IProductClientService#listProduct] x-frame-options: DENY
2020-10-16 15:14:45.634 DEBUG 15604 --- [nio-9999-exec-1] c.y.s.service.IProductClientService      : [IProductClientService#listProduct] x-xss-protection: 1; mode=block
2020-10-16 15:14:45.635 DEBUG 15604 --- [nio-9999-exec-1] c.y.s.service.IProductClientService      : [IProductClientService#listProduct] 
2020-10-16 15:14:45.636 DEBUG 15604 --- [nio-9999-exec-1] c.y.s.service.IProductClientService      : [IProductClientService#listProduct] [{"productId":1,"productName":"a","productDesc":"Good"}]
2020-10-16 15:14:45.637 DEBUG 15604 --- [nio-9999-exec-1] c.y.s.service.IProductClientService      : [IProductClientService#listProduct] <--- END HTTP (56-byte body)

2. 针对一个具体的Feign客户端单独配置.  比如这里对一个Feign客户端进行日志配置. 

@Configuration
public class FeignClientConfig {
    //加入安全配置
    @Bean
    public BasicAuthRequestInterceptor getBasicAuthRequestInterceptor(){
        return new BasicAuthRequestInterceptor("admin","a");
    }
 
    @Bean
    Logger.Level feignLoggerLevel(){
        return Logger.Level.FULL;
    }
}

重启应用程序,查看输出:

2020-10-16 15:20:21.856 DEBUG 15620 --- [nio-9999-exec-1] c.y.s.service.IProductClientService      : [IProductClientService#listProduct] <--- HTTP/1.1 200 (476ms)
2020-10-16 15:20:21.856 DEBUG 15620 --- [nio-9999-exec-1] c.y.s.service.IProductClientService      : [IProductClientService#listProduct] cache-control: no-cache, no-store, max-age=0, must-revalidate
2020-10-16 15:20:21.856 DEBUG 15620 --- [nio-9999-exec-1] c.y.s.service.IProductClientService      : [IProductClientService#listProduct] connection: keep-alive
2020-10-16 15:20:21.856 DEBUG 15620 --- [nio-9999-exec-1] c.y.s.service.IProductClientService      : [IProductClientService#listProduct] content-type: application/json;charset=UTF-8
2020-10-16 15:20:21.856 DEBUG 15620 --- [nio-9999-exec-1] c.y.s.service.IProductClientService      : [IProductClientService#listProduct] date: Fri, 16 Oct 2020 07:20:21 GMT
2020-10-16 15:20:21.856 DEBUG 15620 --- [nio-9999-exec-1] c.y.s.service.IProductClientService      : [IProductClientService#listProduct] expires: 0
2020-10-16 15:20:21.856 DEBUG 15620 --- [nio-9999-exec-1] c.y.s.service.IProductClientService      : [IProductClientService#listProduct] keep-alive: timeout=60
2020-10-16 15:20:21.856 DEBUG 15620 --- [nio-9999-exec-1] c.y.s.service.IProductClientService      : [IProductClientService#listProduct] pragma: no-cache
2020-10-16 15:20:21.856 DEBUG 15620 --- [nio-9999-exec-1] c.y.s.service.IProductClientService      : [IProductClientService#listProduct] transfer-encoding: chunked
2020-10-16 15:20:21.857 DEBUG 15620 --- [nio-9999-exec-1] c.y.s.service.IProductClientService      : [IProductClientService#listProduct] x-content-type-options: nosniff
2020-10-16 15:20:21.857 DEBUG 15620 --- [nio-9999-exec-1] c.y.s.service.IProductClientService      : [IProductClientService#listProduct] x-frame-options: DENY
2020-10-16 15:20:21.857 DEBUG 15620 --- [nio-9999-exec-1] c.y.s.service.IProductClientService      : [IProductClientService#listProduct] x-xss-protection: 1; mode=block
2020-10-16 15:20:21.857 DEBUG 15620 --- [nio-9999-exec-1] c.y.s.service.IProductClientService      : [IProductClientService#listProduct] 
2020-10-16 15:20:21.859 DEBUG 15620 --- [nio-9999-exec-1] c.y.s.service.IProductClientService      : [IProductClientService#listProduct] [{"productId":1,"productName":"a","productDesc":"good"}]
2020-10-16 15:20:21.859 DEBUG 15620 --- [nio-9999-exec-1] c.y.s.service.IProductClientService      : [IProductClientService#listProduct] <--- END HTTP (56-byte body)

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: 使用Feign logging 开启调用日志

本文链接: https://www.lsjlt.com/news/151673.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 使用Feign logging 开启调用日志
    目录Feign logging开启调用日志Feign启用日志需求实现步骤Feign logging开启调用日志 application.yml 配置 logging: level...
    99+
    2022-11-13
  • 如何使用Feign logging开启调用日志
    这篇文章主要讲解了“如何使用Feign logging开启调用日志”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何使用Feign logging开启调用日志”吧!Fei...
    99+
    2023-07-02
  • Python日志模块logging如何使用
    这篇文章主要讲解了“Python日志模块logging如何使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python日志模块logging如何使用”吧!关于开发日志对于开发日志,很多程序...
    99+
    2023-06-30
  • Python日志模块logging怎么使用
    这篇“Python日志模块logging怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python日志模块loggi...
    99+
    2023-06-30
  • python中logging日志模块如何使用
    这期内容当中小编将会给大家带来有关python中logging日志模块如何使用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。基本用法下面的代码展示了logging最基本的用法。# -*-&nbs...
    99+
    2023-06-04
  • Python日志模块logging的使用方法总结
    目录导语关于开发日志关于logging基础使用关于logging进阶使用记录器处理器格式器配置记录实战生成记录器请求处理装饰器总结导语 日常开发中,定位程序异常,追溯事件发生场景都需...
    99+
    2022-11-11
  • Apache通用日志工具commons-logging和Log4j怎么使用
    Apache Commons Logging是一个通用的日志工具,它可以和不同的日志框架(如Log4j、Logback、java.u...
    99+
    2023-10-26
    Apache Log4j
  • Pytest使用logging模块写日志的实例详解
    logging是python语言中的一个日志模块,专门用来写日志的,日志级别通常分为debug、info、warning、error、critical几个级别,一般情况下,默认的日志...
    99+
    2022-12-08
    Pytest logging模块 Pytest logging模块写日志 Pytest日志
  • python打印日志方法的使用教程(logging模块)
    目录一、必备技能1、logging模块的使用二、logging1、logging的基本使用1.1、日志的五个等级(DEBUG/INFO/WARNING/ERROR/CRITICAL)...
    99+
    2022-11-11
  • MySQL慢查询日志的作用和开启
    前言 MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值的语句,具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志中。long_query_...
    99+
    2022-05-21
    mysql慢查询日志查看 mysql慢查询日志在哪里 mysql 慢查询
  • mysql 开启慢查询及其用mysqldumpslow做日志分析
    mysql慢查询日志是mysql提供的一种日志记录,它是用来记录在mysql中相应时间超过阈值的语句,就是指运行时间超过long_query_time值的sql,会被记录在慢查询日志中。long_query...
    99+
    2022-10-18
  • Python使用logging结合decorator模式实现优化日志输出的方法
    本文实例讲述了Python使用logging结合decorator模式实现优化日志输出的方法。分享给大家供大家参考,具体如下: python内置的loging模块非常简便易用, 很适合程序运行日志的输出。 ...
    99+
    2022-06-04
    模式 方法 日志
  • 如何使用docker开启mysql的binlog日志解决数据卷问题
    这篇文章主要为大家展示了“如何使用docker开启mysql的binlog日志解决数据卷问题”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用docker开启mysql的binlog日志解决...
    99+
    2023-06-29
  • 使用SpringBoot_jar方式启动并配置日志文件
    目录SpringBoot_jar方式启动并配置日志文件前言1、测试环境和生产环境启动2、利用shell启动并配置log日志2.1、测试库启动2.2、正式库启动2.3、停止正在运行的项...
    99+
    2022-11-12
  • SpringBoot开发怎么使用AOP记录日志
    这篇文章主要讲解了“SpringBoot开发怎么使用AOP记录日志”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“SpringBoot开发怎么使用AOP记录日志”吧!为什么要用AOP?答案是解...
    99+
    2023-06-25
  • 使用日志进行调查 - SQL 注入攻击示例
    日志文件是服务器提供的非常有价值的信息。几乎所有服务器、服务和应用程序都提供某种日志记录。日志文件记录在服务或应用程序运行期间发生的事件和操作。 日志文件为我们提供了服务器行为的精确视图以及关键信息,例如何时、如何以及由谁访问服务器。此类信...
    99+
    2023-09-04
    sql 服务器 php
  • 如何使用 npm 日志模块来调试 ASP 应用程序?
    在 ASP 应用程序开发过程中,我们经常需要进行调试来解决一些问题。而 npm 日志模块可以帮助我们快速定位问题并进行调试。本文将介绍如何使用 npm 日志模块来调试 ASP 应用程序。 什么是 npm 日志模块? npm 日志模块是一个 ...
    99+
    2023-09-18
    npm 日志 面试
  • Go 日志记录:如何使用缓存优化函数调用?
    在开发过程中,我们经常需要记录日志以便于追踪和调试。Go 语言提供了标准库 log,可以方便地实现日志记录功能。但是,当我们需要频繁地记录相同的日志信息时,过多的日志记录会对性能产生影响。在这种情况下,我们可以使用缓存优化函数调用,以减少...
    99+
    2023-10-17
    日志 函数 缓存
  • 如何在Linux系统中使用Python日志进行调试?
    在Linux系统中,Python日志是一种非常重要的调试工具,能够帮助程序员快速定位程序中的问题。Python的logging模块提供了强大的日志功能,使得开发者可以在程序中灵活地记录各种信息,包括错误、警告、调试信息等等。在本文中,我们将...
    99+
    2023-08-23
    日志 npm linux
  • 如何使用MySQL进行日志分析和性能调优?
    如何使用MySQL进行日志分析和性能调优?导语:MySQL是一种常见且强大的关系型数据库管理系统,被广泛应用于各种网站和应用程序中。本文将介绍如何使用MySQL的日志功能进行分析,并提供一些性能调优的方法和示例代码。一、MySQL的日志功能...
    99+
    2023-10-22
    MySQL 性能调优 日志分析
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作