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

SpringBoot开发——Spring Boot3.4 强大的结构化日志记录

文章目录

  • 1. 简介
  • 2. 实战案例
    • 2.1 环境依赖
    • 2.2 快速入门
    • 2.3 输出到文件
    • 2.4 添加附加字段
    • 2.5 自定义日志格式
  • 总结

1. 简介

日志记录是应用故障排除中早已确立的部分,也是可观测性的三大支柱之一,另外两个是指标和追踪。在生产环境中,没有人喜欢盲目行事,而当故障发生时,开发人员会很高兴有日志文件可供参考。日志通常以人类可读的格式输出。

结构化日志记录是一种技术,其中日志输出以定义明确、通常机器可读的格式编写。这种格式可以输入到日志管理系统中,并启用强大的搜索和分析功能。结构化日志记录最常用的格式之一是JSON

随着Spring Boot 3.4的发布,结构化日志记录得到了开箱即用的支持。它支持Elastic Common Schema (ECS)Logstash格式,但也可以扩展以支持自定义的格式。

2. 实战案例

由于Spring Boot3.4的正式发布将在2024/11/21,所以我们目前只能使用对应的里程碑版本(我使用的M3)。

2.1 环境依赖

<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.4.0-M3</version><relativePath/>
</parent>

注意:你需要配置专用的仓库地址才可下载非正式版本。

2.2 快速入门

该版本默认还是常规机器可读的格式输出日志,所以我们需要做如下配置

logging:structured:format:console: ecs

使用ecs格式输出到控制台
在这里插入图片描述
控制台将以JSON格式输出日志。

2.3 输出到文件

你还可以将结构化日志写入文件。例如,这可用于在控制台上打印人类可读日志,并将结构化日志写入文件供机器提取。

要启用此功能,请将如下配置添加到配置文件当中,并确保删除 logging.structured.format.console=ecs 设置:

logging:file:name: json.logstructured:format:file: ecs

如上配置后,将在项目的根目录下生成json.log日志文件,文件内容将于上面控制台的日志一样。

2.4 添加附加字段

结构化日志记录的一个强大功能是,开发人员可以以结构化的方式向日志事件中添加信息。例如,可以向每个日志事件中添加用户ID,最后根据该ID进行过滤,以查看该特定用户执行了哪些操作。

Elastic Common SchemaLogstash都会在JSON中包含Mapped Diagnostic Context(映射诊断上下文)的内容。为了看到这一点是如何工作的,让我们创建自己的日志消息:

@Component
public class PackCustomLogger implements CommandLineRunner 

相关文章:

SpringBoot开发——Spring Boot3.4 强大的结构化日志记录

文章目录 1. 简介2. 实战案例2.1 环境依赖2.2 快速入门2.3 输出到文件2.4 添加附加字段2.5 自定义日志格式总结1. 简介 日志记录是应用故障排除中早已确立的部分,也是可观测性的三大支柱之一,另外两个是指标和追踪。在生产环境中,没有人喜欢盲目行事,而当故障发生时,开发…...

信号和槽思维脑图+相关练习

将登录框中的取消按钮使用信号和槽的机制&#xff0c;关闭界面。 将登录按钮使用信号和槽连接到自定义的槽函数中&#xff0c;在槽函数中判断ui界面上输入的账号是否为"admin"&#xff0c;密码是否为"123456",如果账号密码匹配成功&#xff0c;当前界面关…...

Unity Feel插件快速入门

What is Feel? Feel是一个即用型解决方案&#xff0c;让你的Unity项目提高游戏体验&#xff0c;增强玩家获得的反馈感,例如相机震动,屏幕闪烁,淡入淡出,等等几十种效果。这是一个模块化、用户友好、易于扩展的系统。 本文旨在让你快速入门,从全局快速了解这个插件,以及基本用…...

数据链路层(四)---PPP协议的工作状态

1 PPP链路的初始化 通过前面几章的学习&#xff0c;我们学了了PPP协议帧的格式以及组成&#xff0c;那么对于使用PPP协议的链路是怎么初始化的呢&#xff1f; 当用户拨号上网接入到ISP后&#xff0c;就建立起了一条个人用户到ISP的物理链路。这时&#xff0c;用户向ISP发送一…...

【C++】入门【六】

本节目标 一、继承的概念及定义 二、基类和派生类对象赋值转换 三、继承中的作用域 四、派生类的默认成员函数 五、继承与友元 六、继承与静态成员 七、复杂的菱形继承及菱形虚拟继承 八、继承的总结和反思 九、笔试面试题 一、继承的概念及定义 1.继承的概念 继承是面向对象…...

UE5 C++ 不规则按钮识别,复选框不规则识别 UPIrregularWidgets

插件名称&#xff1a;UPIrregularWidgets 插件包含以下功能 你可以点击任何图片&#xff0c;而不仅限于矩形图片。 UPButton、UPCheckbox 基于原始的 Button、Checkbox 扩展。 复选框增加了不规则图像识别功能&#xff0c;复选框增加了悬停事件。 欢迎来到我的博客 记录学习过…...

Elasticsearch Serverless 现已正式发布

作者&#xff1a;来自 Elastic Yaru Lin 基于全新无状态&#xff08;stateless&#xff09;架构的 Elasticsearch Serverless 现已正式发布。它采用完全托管方式&#xff0c;因此你可以快速启动项目而无需操作或升级&#xff0c;并且可以使用最新的向量搜索和生成式 AI 功能。 …...

如何使用apache部署若依前后端分离项目

本章教程介绍,如何在apache上部署若依前后端分离项目 一、教程说明 本章教程,不介绍如何启动后端以及安装数据库等步骤,着重介绍apache的反向代理如何配置。 参考此教程,默认你已经完成了若依后端服务的启动步骤。 前端打包命令使用以下命令进行打包之后会生成一个dist目录…...

openEuler安装UKUI桌面

# 升级更新 sudo yum -y update # 安装UKUI界面 dnf install ukui # 设置图形启动 systemctl set-default graphical.target # 重启 # 查看当前系统启动模式 systemctl get-default # 修改默认启动模式为 命令行界面模式 systemctl set-default multi-user.target 在UK…...

深入理解Oracle DB的锁和闩

1. 引言 本文深入介绍Oracle DB的锁和闩。 2. Oracle DB 锁的基本概念 2.1 定义与作用 锁是 Oracle 数据库用于控制并发访问的一种机制。它用于防止多个事务同时对同一数据进行不一致的操作&#xff0c;确保数据的完整性和一致性。例如&#xff0c;当一个事务正在更新一行数…...

jenkins+github+springboot自动部署

背景&#xff1a; 最近看流水线有点意思&#xff0c;就说自己也搞一套。 预期效果&#xff1a; idea提交代码后&#xff0c;GitHub接收&#xff0c;jenkins自动部署。【后续加个自动部署时的代码检查、单元测试、安全测试、sonarqube】 思路分析: idea上的spring代码push到gi…...

HTML5系列(10)-- 地理位置服务指南

前端技术探索系列&#xff1a;HTML5 地理位置服务指南 &#x1f30d; 致读者&#xff1a;探索位置服务的魅力 &#x1f44b; 前端开发者们&#xff0c; 今天我们将深入探讨 HTML5 的地理位置服务&#xff08;Geolocation API&#xff09;&#xff0c;这项强大的功能让我们能…...

【MySQL 进阶之路】SQL 优化

6.SQL 性能分析笔记 在现代数据库的高并发环境下&#xff0c;SQL 查询优化成为提升系统性能和响应速度的关键。本文将总结常见的 SQL 优化策略&#xff0c;包括插入优化、主键设计、排序优化、GROUP BY 优化等&#xff0c;帮助你在面对大规模数据时&#xff0c;做到高效查询和…...

Web3的技术栈详解:解读区块链、智能合约与分布式存储

随着数字时代的不断发展&#xff0c;Web3作为下一代互联网的核心理念逐渐走进了大众视野。它承载着去中心化、用户主权以及更高效、更安全的网络环境的期望。Web3不再是由少数中心化机构主导的网络&#xff0c;而是通过一系列核心技术的支撑&#xff0c;给每个用户赋予了更多的…...

[在线实验]-在docker中运行clickhouse

镜像下载 docker的clickhouse镜像资源-CSDN文库 加载镜像 首先&#xff0c;需要获取ClickHouse的Docker镜像。如果已经有镜像文件&#xff08;如clickhouse.tar&#xff09;&#xff0c;可以使用docker load命令来加载它&#xff1a; docker load --input clickhouse.tar …...

Rust常用命令总结

安装Rust 检查并更新Ubuntu的软件包 $ sudo apt update $ sudo apt upgrade安装相关依赖&#xff1a;安装GCC、G、MAKE、curl $ sudo apt install build-essential $ sudo apt install curl安装Rust $ curl --proto https --tlsv1.2 -sSf https://sh.rustup.rs | sh执行命令…...

Ant-Design X,AI组件库

前端的小伙伴们都知道有一个前端组件库超级火&#xff0c;可以说是 Top1 级别的&#xff0c;那就是 Ant-Design 而就在最近&#xff0c;他们又推出了一款新的组件库&#xff0c;Ant-Design X&#xff0c;这是专门用来做 AI 产品 的组件库&#xff0c;可能大家还很疑惑&#xf…...

Matplotlib 内置的170种颜色映射(colormap)

Matplotlib 提供了许多内置的颜色映射&#xff08;colormap&#xff09;选项&#xff0c;可以将数值数据映射到色彩范围——热力图、温度图、地图等可视化经常会用到。 # colormap 有两种引用形式plt.imshow(data, cmapBlues)plt.imshow(data, cmapcm.Blues) 颜色映射可以分为…...

在linux虚拟机安装VMware tools

安装UKUI桌面后&#xff0c;在火狐浏览器输入下载VMware tool地址&#xff1a; https://gitcode.com/open-source-toolkit/395d3/blob/5faa176939c7ac1f614a8b6f07f14cc31433ff95/VMwareTools-10.3.21-14772444.tar.gz 解压下载的软件包&#xff0c;进入目录&#xff1a;vmwa…...

初识EasyFramework

一、获取EF Git地址&#xff1a;https://github.com/HiWenHao/EFrameworkGitee地址&#xff1a;https://gitee.com/wang_xiaoheiiii/EFramework视频合集&#xff1a;EasyFramework介绍_哔哩哔哩_bilibiliQQ群: 711540505 二、 下载并初步了解 1. 下载完成后&#xff0c;可以看…...

热门AI命理工具盘点:星座、运势、排盘工具一次看

很多朋友对传统命理文化感兴趣&#xff0c;却怕找不对专业靠谱的工具&#xff0c;今天我们就整理了10款不同方向的AI命理相关工具&#xff0c;涵盖星座、面相、运势测算、专业排盘等不同需求&#xff0c;大家可以按需选择。 一、专业命理首选&#xff1a;天府 Agent 链接&#…...

深入解析ReID核心评价指标:从Rank1到mINP的实战应用

1. ReID评价指标入门&#xff1a;为什么我们需要这么多指标&#xff1f; 第一次接触ReID&#xff08;行人重识别&#xff09;的朋友可能会被各种评价指标搞得头晕——Rank1、mAP、ROC、mINP...这些字母组合到底在说什么&#xff1f;其实这些指标就像医生给病人做体检时的不同检…...

Kotlin 2.4.0 正式发布,快来看看有哪些更新

昨日&#xff0c;JetBrains 发布了 Kotlin 2.4.0-Beta1。 如果你管的是 Android 工具链、Kotlin 多平台&#xff0c;或者团队里已经开始碰 context receivers、注解处理、.klib 兼容问题&#xff0c;这个版本已经值得单独开分支验证。 先说结论 这次最有分量的变化&#xff0…...

实战利器:借助快马平台构建磁盘空间分析器,cmd命令深度应用

今天想和大家分享一个非常实用的工具开发经验——如何用cmd命令构建一个磁盘空间分析器。这个工具在我们日常系统维护和磁盘管理中特别有用&#xff0c;尤其是当C盘突然变红或者需要清理大文件的时候。 工具核心功能设计 这个磁盘空间分析器主要解决几个实际问题&#xff1a;…...

2026届学术党必备的十大AI写作助手推荐榜单

Ai论文网站排名&#xff08;开题报告、文献综述、降aigc率、降重综合对比&#xff09; TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 知网AIGC检测服务的目的是辅助识别学术文本里由人工智能生成的内容&#xff0c;该技术凭借对…...

嵌入式系统电源时序控制原理与实现

1. 电源时序控制基础概念在现代电子系统中&#xff0c;多电压域设计已成为常态。一个典型的嵌入式系统可能同时需要1.2V&#xff08;核心逻辑&#xff09;、3.3V&#xff08;外设接口&#xff09;和1.5V&#xff08;特殊功能模块&#xff09;等多种电压。这些电源的上电顺序对系…...

个人 AI 助理——打造你的第二大脑

个人 AI 助理——打造你的第二大脑摘要&#xff1a;信息过载时代&#xff0c;个人 AI 助理不再是奢侈品&#xff0c;而是必需品。本文教你如何搭建专属 AI 助理&#xff0c;实现信息管理、知识沉淀、决策辅助的智能化&#xff0c;让 AI 成为你的"第二大脑"。一、为什…...

Real-ESRGAN-GUI:如何用AI双引擎将模糊图片一键变高清

Real-ESRGAN-GUI&#xff1a;如何用AI双引擎将模糊图片一键变高清 【免费下载链接】Real-ESRGAN-GUI Lovely Real-ESRGAN / Real-CUGAN GUI Wrapper 项目地址: https://gitcode.com/gh_mirrors/re/Real-ESRGAN-GUI 还在为模糊的老照片、低分辨率的动漫图片而烦恼吗&…...

硬件解放:开源工具突破设备限制的深度探索指南

硬件解放&#xff1a;开源工具突破设备限制的深度探索指南 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 当你的设备被厂商贴上"过时"标签&#x…...

美的集团2025年营收创新高、利润100%分红 落地1.3万个AI智能体

3月30日&#xff0c;美的集团发布2025年年报&#xff0c;实现营业总收入4585亿元&#xff0c;同比增长12.1%&#xff1b;归属于上市公司股东的净利润439.5亿元&#xff0c;同比上升14%。在业绩再创新高的同时&#xff0c;伴随我国“人工智能”行动的全面实施&#xff0c;美的集…...