spring boot开发的日志系统
时间:2022-05-06
本文章向大家介绍spring boot开发的日志系统,主要内容包括请求跟踪管理、SQL日志管理、业务日志管理、API日志管理、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。
项目采用技术:springboot,mongodb,freemarker,bootstrap,highcharts等
这个项目还没做完,目前已完成的功能有下面几个:
请求跟踪管理
输入请求编号即可查看这个请求一系列的流程日志,包括业务以及sql日志。
SQL日志管理
业务日志管理
API日志管理
没做完的是首页的图表展示,目前只放了图表控件,用的highcharts,数据还未填充完。
首页这块是对日志的各个维度的统计,以及访问量的实时展现。
像一些api的统计展示如果日志量不大的情况下是可以直接去数据库查询可以实现的,但是如果量大了,建议用跑任务的形式去将结果跑出来,首页这边直接查询统计好的数据展示就可以了,这样体验会好些。
需要注意的是这个系统的数据是放在mongodb里面的,数据格式可以对照里面的实体类填充即可。
现在的查询是基于mongodb的,本来是想做成2套,加上elasticsearch的数据存储方式。
然后在配置文件中配置data.store.type来指定系统的数据读取方式,由于时间的关系,暂时只实现了mongo的。
#数据读取方式(mongo和es)
data.store.type=mongo
启动项目登录的账号默认是cxytiandi和cxytiandi
修改请到com.cxytiandi.log.controller.UserController.login中修改,目前为了简单是写死的。
先到这里吧,后面有时间再把剩下的功能慢慢补上。
关于怎么存储这种数据格式做个说明:
在API这层每次请求要有一个唯一的编号,才能标识整个请求的流程,
sql日志我这边是自己封装了一个orm框架,记日志会方便些,如果没有自己封装可以用切面的方式来统一记录日志。
- Flash/Flex学习笔记(34):AS3中的自定义事件
- 字符串处理总结(旧)
- 计算某年某月的某一天是星期几的算法
- Flash/Flex学习笔记(33):如何用As3协同Flash CS IDE控制MovieClip实例
- live writer的折腾
- 用C语言写的万年历---亲手写的。好累哦
- Flash/Flex学习笔记(32):播放音乐并同步显示lyc歌词(适用于Silverlight)
- Flash/Flex学习笔记(31):对象拖拽与投掷
- 如何评价张小龙在2016微信公开课的演讲
- VS2010如何做WAP开发
- (原创)详解KMP算法
- Flash/Flex学习笔记(30):不用startDrag和stopDrag的对象拖动
- JS代码和网页的混用
- Flash/Flex学习笔记(29):MovieClip帧/时间轴的控制
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- SAP WebClient UI One Hit Navigation的实现方法
- 【打包构建】Mac下使用expect实现执行sudo命令时自动输入密码
- ASP.NET Core 奇淫技巧之SPA部署
- SAP Cloud for Customer Rule Editor的使用方法和底层工作原理
- (数据科学学习手札94)QGIS+Conda+jupyter玩转Python GIS
- 72-STM32+ESP8266+AIR202基本控制篇-移植使用-移植Android的MQTT包到自己的工程项目
- 用上Latex实现编辑伪代码
- TensorFlow交叉熵函数(cross_entropy)·理解
- 第05期:Prometheus 数据查询(一)
- 技术分享 | MySQL 复制那点事 - Seconds_behind_Master 参数调查笔记
- 线程有多少种状态?Runnable 一定在执行任务吗?
- swift 中类(class)和结构体(struct)区别
- C语言三剑客之《C专家编程》一书精华提炼
- 前端必备技能:json-server全攻略
- 温故知新——Spring AOP(二)