当前位置: 首页 > news >正文

【Java】Logbook优化接口调用日志输出,优雅!

logbook 简介

很多人可能没有接触过 logbook,但它的确是一个很好用的日志框架。引用官网的介绍

Logbook 是一个可扩展的 Java 库,可以为不同的客户端和服务器端技术启用完整的请求和响应日志记录。它通过以下方式满足了特殊需求:

  • 允许 Web 应用程序开发人员记录应用程序接收或发送的任何 HTTP 流量 ,这意味着只要是 HTTP 请求它都可以选择记录日志
  • 以一种易于持久化和分析的方式。这对于传统的日志分析、满足审计要求或调查个别历史流量问题非常有用。

具体介绍可以参考 链接: logbook 官网

使用logbook

这边主要讲解logbookspringBoot2的整合
logbook 官方提供了 logbook-spring-boot-starter

简单使用

引入依赖

<!--按照官方要求 为了 Spring 5 / Spring Boot 2 向后兼容,需要导入如下依赖-->
<dependency><groupId>org.zalando</groupId><artifactId>logbook-servlet</artifactId><version>3.9.0</version><classifier>javax</classifier>
</dependency>
<dependency><groupId>org.zalando</groupId><artifactId>logbook-spring-boot-starter</artifactId><version>3.9.0</version>
</dependency>

添加配置

logging:level:org.zalando.logbook: TRACE

写个测试接口就可以看到日志了

{"origin": "remote", //remote 代表远程请求,local 代表本地发出的请求 例如 Feign"type": "request","correlation": "b2b2b8e449d7b650", //请求唯一id"protocol": "HTTP/1.1","remote": "0:0:0:0:0:0:0:1","method": "GET","uri": "http://localhost:8080/consumer","headers": {"accept": ["text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9"],"accept-encoding": ["gzip, deflate, br"],"accept-language": ["zh-CN,zh;q=0.9"],"cache-control": ["max-age=0"],"connection": ["keep-alive"],"host": ["localhost:8080"],//...省略}
}

选择日志风格

logbook 提供了多种日志风格,默认是 JSON ,在 application.yml 中通过以下配置选择

logbook:format:style: json #默认值,可选值还有 curl、http、splunk

转载: 原文

相关文章:

【Java】Logbook优化接口调用日志输出,优雅!

logbook 简介 很多人可能没有接触过 logbook&#xff0c;但它的确是一个很好用的日志框架。引用官网的介绍 Logbook 是一个可扩展的 Java 库&#xff0c;可以为不同的客户端和服务器端技术启用完整的请求和响应日志记录。它通过以下方式满足了特殊需求&#xff1a; 允许 Web 应…...

LabVIEW电压电流实时监测系统

开发了一种基于LabVIEW和研华&#xff08;Advantech&#xff09;数据采集卡的电压电流实时监测系统&#xff0c;通过高效的数据采集和处理&#xff0c;为工业和科研用户提供高精度、实时的电压电流监测解决方案。系统采用研华USB-4711A数据采集卡&#xff0c;结合LabVIEW编程环…...

骁龙相机拍照流程分析

和你一起终身学习&#xff0c;这里是程序员Android 经典好文推荐&#xff0c;通过阅读本文&#xff0c;您将收获以下知识点: 1.deliverInputEvent 拍照点击事件处理 2.submitRequestList Camera 提交拍照请求 3.createCaptureRequest 拍照请求帧数 骁龙相机通过binder 数据传输…...

sql-语句

文章目录 SQL语句的学习sql是什么sql的内置命令sql的种类sql mode库&#xff0c;表属性介绍&#xff1a;字符集&#xff0c;存储引擎列的数据类型&#xff1a;数字&#xff0c;字符串&#xff0c;时间列的约束DDL: 数据定义语言库表 Online DDL(ALGORITHM) *DML :数据操纵语言资…...

解决Vue3项目中跨域问题的步骤

决Vue3项目中跨域问题的步骤可以按照以下方式清晰地分点表示和归纳&#xff1a; 1. 使用代理服务器&#xff08;Proxy&#xff09; 步骤&#xff1a; 在Vue项目的根目录下找到或创建vue.config.js文件。在vue.config.js中配置devServer的proxy选项。设定需要代理的接口前缀&a…...

macos scroll direction

If there is no Trackpad option, we can change it in the Mouse option. How to Change the Scroll Direction on a Mac: 2 Ways...

Websocket实现方式二——注解方式

添加Websocket依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId> </dependency>根据ServerEndpoint注解注册Websocket Configuration public class AgentWsConfig …...

零基础开始学习鸿蒙开发-页面导航栏布局设计

目录 1.设定初始页(Idex.ets) 2.自定义首页组件 3.自定义发现页面组件 4.自定义设置页面组件 总结:主要是运用 了Tabs组件对导航栏进行布局&#xff0c;然后运用BottomTabBarStyle组件嵌套图标和文字&#xff0c;完成导航栏的制作。 1.设定初始页(Idex.ets) import {find}…...

【Hive中常见的优化手段----数据采集!Join 优化!Hive索引!数据倾斜!mapreduce本地模式!map和reduce数量调整!】

前言&#xff1a; &#x1f49e;&#x1f49e;大家好&#xff0c;我是书生♡&#xff0c;今天主要和大家分享一下Hive中常见的优化手段----数据采集&#xff01;常见的Join 优化有哪几种&#xff01;什么是Hive索引&#xff01;数据怎么发生倾斜&#xff01;什么是mapreduce的本…...

【面试系列】软件工程师高频面试题及详细解答

欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;欢迎订阅相关专栏&#xff1a; ⭐️ 全网最全IT互联网公司面试宝典&#xff1a;收集整理全网各大IT互联网公司技术、项目、HR面试真题. ⭐️ AIGC时代的创新与未来&#xff1a;详细讲解AIGC的概念、核心技术、…...

Qt开发 | Qt界面布局 | 水平布局 | 竖直布局 | 栅格布局 | 分裂器布局 | setLayout使用 | 添加右键菜单 | 布局切换与布局删除重构

文章目录 一、Qt界面布局二、Qt水平布局--QHBoxLayout三、Qt竖直布局四、Qt栅格布局五、分裂器布局代码实现六、setLayout使用说明七、布局切换与布局删除重构1.如何添加右键菜单2.布局切换与布局删除重构 一、Qt界面布局 Qt的界面布局类型可分为如下几种 水平布局&#xff08;…...

LW-DETR: A Transformer Replacement to YOLO for Real-Time Detection

LW-DETR: A Transformer Replacement to YOLO for Real-Time Detection 论文链接&#xff1a;http://arxiv.org/abs/2406.03459 代码链接&#xff1a;https://github.com/Atten4Vis/LW-DETR 一、摘要 介绍了一种轻量级检测变换器LWDETR&#xff0c;它在实时物体检测方面超越…...

前端技术(二)——javasctipt 介绍

一、javascript基础 1. javascript简介 ⑴ javascript的起源 ⑵ javascript 简史 ⑶ javascript发展的时间线 ⑷ javascript的实现 ⑸ js第一个代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>…...

FireFox 编译指南2024 Windows10篇-环境准备(一)

1. 引言 在开源浏览器项目中&#xff0c;Firefox因其高性能和灵活性而备受开发者青睐。为了在本地环境中编译和定制Firefox&#xff0c;开发者需要做好充分的环境准备工作。这不仅是编译成功的基础&#xff0c;也是后续调试、优化和二次开发的关键步骤。 编译Firefox是一个复…...

Spring Boot中的热部署配置

Spring Boot中的热部署配置 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天我们将探讨如何在Spring Boot项目中实现热部署配置&#xff0c;提升开发效率和项…...

用ChatGPT快速打造一个专业WordPress网站

作为一个使用HostEase多年的老用户&#xff0c;我想和大家分享一下如何利用HostEase和ChatGPT快速构建一个WordPress网站的经验。这不仅仅是一个简单的操作步骤&#xff0c;更是一次从零到有的实战经历。希望我的分享能给你们带来一些实用的帮助。 获取主机服务和域名 首先&a…...

dsp入门

安装环境 安装 ccs5.5安装 BIOS-MCSDK 多核软件开发包安装 仿真器驱动 工程创建与导入工程 创建工程 创建工程填信息添加.cmd文件&#xff0c;配置内存编译 导入工程 导入 配置工程 选择properties 环境变量 头文件 库文件 仿真器 添加仿真器 先调出仿真器界面创建仿…...

Java并发编程-Atomiclnteger、LongAdder等原子类的使用及案例实战

文章目录 i++和Atomiclnteger之间的差别分析以及使用介绍i++AtomicInteger使用介绍i++ 示例AtomicInteger 示例总结Atomiclnteger中的CAS无锁化原理和思路介绍CAS 原理AtomicInteger 的 CAS 应用无锁化思路Atomiclnteger源码剖析:仅限JDK内部使用的Unsafe类`Unsafe` 类的关键作…...

九浅一深Jemalloc5.3.0 -- ②浅*size class

目前市面上有不少分析Jemalloc老版本的博文&#xff0c;但5.3.0却少之又少。而且5.3.0的架构与之前的版本也有较大不同&#xff0c;本着“与时俱进”、“由浅入深”的宗旨&#xff0c;我将逐步分析Jemalloc5.3.0的实现。 另外&#xff0c;单讲实现代码是极其枯燥的&#xff0c;…...

JavaScript——属性的增删改查

目录 任务描述 相关知识 属性的获取 方式一 方式二 属性的修改与新增 删除属性 编程要求 任务描述 Luma Restaurant 以前的财务人员在统计销售额的时候不小心把数据弄错了&#xff0c;现在的财务人员想通过一个 JavaScript 函数方便的修改数据&#xff0c;并署上自己的…...

LyricsX:如何在macOS上实现智能歌词同步的完整解决方案

LyricsX&#xff1a;如何在macOS上实现智能歌词同步的完整解决方案 【免费下载链接】LyricsX &#x1f3b6; Ultimate lyrics app for macOS. 项目地址: https://gitcode.com/gh_mirrors/ly/LyricsX 作为macOS用户&#xff0c;你是否曾为音乐播放器缺乏歌词功能而烦恼&a…...

AMD显卡运行CUDA的终极方案:ZLUDA 5分钟快速上手指南

AMD显卡运行CUDA的终极方案&#xff1a;ZLUDA 5分钟快速上手指南 【免费下载链接】ZLUDA CUDA on AMD GPUs 项目地址: https://gitcode.com/gh_mirrors/zlu/ZLUDA 你是否曾因为手中的AMD显卡无法运行心爱的CUDA应用而感到困扰&#xff1f;无论是Blender渲染、PyTorch机器…...

终极HTTP请求控制指南:如何用HeaderEditor轻松掌握浏览器网络调试

终极HTTP请求控制指南&#xff1a;如何用HeaderEditor轻松掌握浏览器网络调试 【免费下载链接】HeaderEditor Manage browsers requests, include modify the request headers, response headers, response body, redirect requests, cancel requests 项目地址: https://gitc…...

SS928/SD3403边缘AI视觉芯片开发:从环境搭建到模型部署实战

1. 项目概述&#xff1a;解码新一代视觉处理核心最近在嵌入式视觉和边缘计算圈子里&#xff0c;SS928和SD3403这两个名字被提及的频率越来越高。很多刚接触的朋友可能会有点懵&#xff0c;这两个型号到底是什么关系&#xff0c;又能用来做什么&#xff1f;简单来说&#xff0c;…...

Mobocertinib莫博赛替尼副作用恶心及口腔炎如何有效处理【海得康】

在莫博替尼&#xff08;Mobocertinib&#xff0c;商品名Exkivity&#xff09;治疗EGFR外显子20插入突变非小细胞肺癌的临床实践中&#xff0c;恶心与口腔炎是两类最令患者苦不堪言的不良反应。它们不像腹泻那样来势汹涌、立竿见影&#xff0c;却以一种持续而隐蔽的方式侵蚀着患…...

html标签如何标注作者信息_meta name=author写法【解答】

...

告别手机热点!实测特斯拉Model 3用USB无线网卡搭建‘永久’车载WiFi,看视频、OTA升级全搞定

特斯拉Model 3车载WiFi终极方案&#xff1a;告别流量焦虑与手机依赖 每次开车带家人出行时&#xff0c;后排的孩子总抱怨"视频又卡住了"&#xff0c;而手机热点不仅耗电还经常断连——这可能是许多特斯拉车主的共同困扰。更尴尬的是&#xff0c;当车辆停在信号死角时…...

Kubernetes智能运维助手:基于LLM的kube-copilot实战指南

1. 项目概述&#xff1a;当Kubernetes遇上AI副驾驶如果你和我一样&#xff0c;每天都要和Kubernetes集群打交道&#xff0c;那你肯定对下面这些场景不陌生&#xff1a;凌晨三点被告警叫醒&#xff0c;面对一个不断重启的Pod&#xff0c;需要手动执行一串kubectl describe、kube…...

Zig语言构建工具zcc详解:依赖管理与项目构建实践

1. 项目概述&#xff1a;一个为Zig语言量身打造的构建系统最近在折腾Zig语言项目时&#xff0c;发现了一个挺有意思的工具&#xff1a;git-on-my-level/zcc。乍一看这个名字&#xff0c;可能会让人联想到经典的C编译器gcc&#xff0c;或者猜测它是一个Zig语言的C编译器前端。但…...

RAG和向量索引

为特定用例设计代理时&#xff0c;需要确保语言模型已建立基础并使用与用户所需内容相关的事实信息。 虽然语言模型针对大量数据进行了训练&#xff0c;但它们可能无权访问你想要向用户提供的知识。 若要确保代理基于特定数据提供准确且特定于域的响应&#xff0c;可使用检索增…...