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

项目运行插件-日志管理

日志管理

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

体验地址: 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.kler.cn/a/298194.html

相关文章:

  • 海报制作软件有哪些?免费海报制作试试这些
  • 并发编程 - NSOperationNSOperationQueue(多线程)
  • Java语言程序设计基础篇_编程练习题*18.14 (求字符串中大写字母的个数)
  • Day20_0.1基础学习MATLAB学习小技巧总结(20)——MATLAB绘图篇(3)
  • Unity3D 小案例 像素贪吃蛇 01 蛇的移动
  • vben-admin:调用vben的对话框,并向对话框传递数据(vue3setup语法)
  • 【专题】2024年8月医药行业报告合集汇总PDF分享(附原数据表)
  • 前k个高频元素
  • 数据库,数据仓库,数据湖,湖仓一体到底是什么区别
  • 可以从以下几个方面判断一个 SQL 查询是否需要优化:
  • 大屏地图区域显示、复选框多选打点,自定义窗体信息(vue3+TS)
  • Web安全与网络安全:SQL漏洞注入
  • 再见Java 8,请掌握最新LTS
  • 微擎框架
  • 【爱加密_云平台-注册/登录安全分析报告】
  • 图像处理基础篇-镜像仿射透视
  • Leetcode面试经典150题-55.跳跃游戏
  • MongoDB基本语法
  • 【C++】priority-queue的底层原理及实现
  • 这10种人不适合干项目经理,你在其中吗?