项目运行插件-日志管理

news2024/11/25 6:40:29

日志管理

项目运行时模块提供了项目日志收集,检索和保存查询方案等功能。

体验地址: http://119.163.197.219:13456/view/runtime/index.html#/log/aioLogPage

沟通加QQ群 : 908377977
gitee 开源地址 : https://gitee.com/aiocode/aio-runtime
github开源地址 : https://github.com/codeisangel/aio-runtime

日志模块使用Lucene全文本检索引擎提供日志的存储与检索,Lucene单个索引库能提供在200万以内的日志范围提供1000行日志的秒以内的写入能力,日志模块默认一个小时创建一个所以库,因此一天2000万级别日志,轻松拿捏。

日志默认保存90天。

日志查询

日志查询页面截图如下 :
日志查询页面

日志查询可以通过 类名,方法名,追踪码,日志级别 ,发生时间,标记,线程名,内容,MDC查询

追踪码

追踪码可以用于还原请求的处理过程。servlet服务一个请求对应一个线程,追踪吗使用ThreadLocal方式使追踪码与线程相关联。

同时可以通过获取当前线程的追踪码

TraceId.getTraceId();

可以通过AOP或者拦截器等方式将追踪码返回到前端,帮助前后端联调。前端仅需要提供追踪码,后台就可以通过追踪码查询到请求的日志。

当然运行时模块也提供了接口访问记录功能,让接口访问记录与追踪码,日志相结合,更方便确认问题。

Servlet 集成追踪码

通过添加servlet拦截器TraceIdInterceptor可以快速集成追踪码

@Slf4j
@Configuration
public class ServletWebInterceptorConfig implements WebMvcConfigurer {

    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(new TraceIdInterceptor()).addPathPatterns("/**");
    }
}

通过标记查询

日志模块提供了日志标记功能,用户可以通过如下方法为日志添加标记,

log.error(SubscribeMarker.getMarker("MappingsEndpoint"), "读取接口信息失败。MappingsEndpoint 未注入。请引入 spring-boot-starter-actuator 模块,并且开启MappingsEndpoint ");

SubscribeMarker 对象可以标记日志,标记后可以通过标记查询日志,例如上例,可以通过MappingsEndpoint 查询日志

通过内容查询

日志模块支持日志全文本检索,提议对内容添加多个内容条件 ,如下图 :

内容查询

MDC查询

MDC是日志框架提供的标记日志的功能,与日志追踪码原理相同使用ThreadLocal 标记线程日志。

添加方式如下 :

        MDC.put("logCreate", IdUtil.nanoId());
        MDC.put("testMdc", RandomUtil.randomStringUpper(10));

查询时可以通过输入 key - value 对应的日志,MDC适合标记业务与日志的关系,例如,将 用户ID,业务流程号等与日志关联。

查询页面如下 :

MDC日志查询

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2123732.html

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

相关文章

打印文档时,只有图片中的文本不清晰该如何处理

最近打印东西的时候,发现只有图片中的文本并不清晰,就想研究一下如何改善这个问题。 打印机是佳能的 MF113w,一个不错的多功能激光黑白打印机,支持无线打印。唯一问题就是每次 DHCP 分配 IP 到期后,这款打印机就会亮错…

AI提质增效率赋能工业产品质检,基于高精度YOLOv5全系列参数【n/s/m/l/x】模型开发构建工业生产场景下PCB电路板缺陷问题智能化分割检测识别分析系统

在PCB电路板的生产制造过程中,质量检测是确保产品质量、维护品牌形象的关键环节。然而,传统的人工检测方式依赖于经验丰富的工人师傅通过光学显微镜等设备进行逐块检查,这不仅劳动强度大、效率低下,而且受限于人的主观判断、视力疲…

《华为 eNSP 模拟器安装教程》

1.电脑安装环境要求: 检查电脑是否安装过 eNSP 和依赖软件,如果有,请全部卸载。 安装软件列表: 2.软件安装: 安装 WinPcap: 打开安装包,单击【Next】 单击【I Agree】 单击【Install】 单击【…

《信息系统安全》课程实验指导

第1关:实验一:古典密码算法---代换技术 任务描述 本关任务:了解古典密码体制技术中的代换技术,并编程实现代换密码的加解密功能。 注意所有明文字符为26个小写字母,也就是说字母表为26个小写字母。 相关知识 为了完…

1、常用的数据库、表操作

基本的建表和数据库拷贝操作。 一、数据定义语言DDL show databases; # 查看全部数据库 show create database db; # 查看数据库db create database db; # 创建数据库db drop database db; # 删除数据库db use db; # 使用数据库db基本…

1 Linux SSH安全加固_linux system-auth

![在这里插入图片描述](https://img-blog.csdnimg.cn/20201117150524918.png?x-oss-processimage/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwOTA3OTc3,size_16,color_FFFFFF,t_70#pic_center) ![在这里插入图片描述](https://…

11、LLaMA-Factory自定义数据集微调

1、数据集定义 针对实际的微调需求,使用专门针对业务垂直领域的私有数据进行大模型微调才是我们需要做的。因此,我们需要探讨如何在LLaMA-Factory项目及上述创建的微调流程中引入自定义数据集进行微调。**对于LLaMA-Factory项目,目前仅支持两…

什么是 Grafana?

什么是 Grafana? Grafana 是一个功能强大的开源平台,用于创建、查看、查询和分析来自多个来源的数据。通过可视化仪表盘(Dashboard),它能够帮助用户监控实时数据、生成历史报告,甚至进行预测分析。Grafana…

深入理解Java虚拟机:Jvm总结-类文件结构以及类加载机制

第六章 类文件结构 6.1 意义 代码编译的结果从本地机器码转变为字节码,冲破了平台界限。 6.2 无关性的基石 实现语言无关性的基础仍然是虚拟机和字节码存储格式。Java虚拟机不与包括Java语言在内的任何程序语言绑定,它只与“Class文件”这种特定的二…

vue2实践:el-table实现由用户自己添加删除行数的动态表格

需求 项目中需要提供一个动态表单,如图: 当我点击添加时,便添加一行;点击右边的删除时,便删除这一行。 至少要有一行数据,但是没有上限。 思路 这种每一行的数据固定,但是不定行数的&#x…

校园水电费管理|基于java的校园水电费管理小程序系统 (源码+数据库+文档)

校园水电费管理 目录 基于java的校园水电费管理小程序系统 一、前言 二、系统设计 三、系统功能设计 小程序端 后台功能模块 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取: 博主介绍:✌️大厂码农|毕…

Selenium使用浏览器用户配置进行测试

本文主要介绍了如何在使用Selenium WebDriver进行自动化测试时,创建和使用自定义的Firefox配置文件。 什么是Firefox配置文件? Firefox会将用户的个人信息,如书签、密码和用户偏好设置存储在一个称为配置文件的文件集合中,这些文…

C++设计模式——Iterator迭代器模式

一,迭代器模式的定义 迭代器模式是一种行为型设计模式,它使得遍历一个容器对象中的元素变得更加简单。 迭代器模式将遍历操作从容器对象(如集合、列表)中分离出来,它通过迭代器对象来遍历容器对象中的元素&#xff0…

若依后端正常启动但是uniapp移动端提示后端接口异常

pc端能用模拟器也能正常连接接口,手机端真机调试连不上接口 解决: 1. 先看config.js的 填自己的ip地址 module.exports { // baseUrl: https://vue.ruoyi.vip/prod-api, baseUrl: "http://192.168.101.5:8080", } 2.网络环境问题&#…

mysql -小计

//表单某字段值为当前打开文档Id (function () { var rdoc getRelateDocument(); var warehouseName rdoc.getItemValueAsString(“warehouseName”); var name rdoc.getItemValueAsString(“name”); var color rdoc.getItemValueAsString(“color”); var batchNumber r…

2024年Web前端JavaScript面试题整理附答案

(1)两等号判等,会在比较时进行类型转换; (2)三等号判等(判断严格),比较时不进行隐式类型转换,(类 型不同则会返回false); (3)Object.is 在三等号…

基于风力发电系统的开关磁阻Simulink建模与仿真

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 5.完整工程文件 1.课题概述 基于风力发电系统的开关磁阻Simulink建模与仿真,开关磁阻风力发电系统(Switched Reluctance Wind Power Generation System)利用开关磁阻电…

计算机的错误计算(八十九)

摘要 探讨反双曲余切函数 acoth(x) 在 附近的计算精度问题。 Acoth(x) 函数的定义为: 其中 x 的绝对值大于 1 . 例1. 计算 acoth(1.000000000002) . 不妨在 Excel 的单元格中计算,则有: 若在Python中用定义直接计算,则有几乎…

SpringCloud神领物流学习笔记:项目概述(一)

SpringCloud神领物流学习笔记:项目概述(一) 文章目录 SpringCloud神领物流学习笔记:项目概述(一)1、项目介绍2、基本业务流程3、系统架构4、技术架构 1、项目介绍 ​ 神领物流是一个基于微服务架构体系的【…

Visual Studio 在 .NET MAUI 安装期间无法安装 OpenJDK v8 - 访问被拒绝

优质博文:IT-BLOG-CN 问题 我一直在 Windows 计算机上设置 Visual Studio 以进行 .NET MAUI 开发,但在设置过程中一直遇到问题。具体问题涉及 OpenJDK v8 无法安装。这是我看到的情况: Couldnt install OpenJDKv8我尝试过几种方法来解决这…