实时日志滚动显示 springboot+vue3

本文介绍了一种基于SseEmitter的实时日志监控方案,后端使用SpringBoot,前端采用Vue3。通过SseEmitter保持轻量级连接,避免使用WebSocket。前端利用ansi_up展示日志,处理session问题以确保连续性。日志读取策略包括记录当前点,避免刷新或日志更新导致的问题,并使用Redis存储点位置以适应分布式环境。目前实现限制最多读取500行,滚动显示并支持日志清空,但仍有分布式存储优化和性能提升的空间。
摘要由CSDN通过智能技术生成

-:后端使用ssemiter保持客户端链接:http

这里不用websocket的原因是,sse很轻,整合方便,可发送日志,消息,群发等都可以。

-:前端使用vue3+ansi_up做页面展示

第一: 刷新页面导致session问题

可以在java的session中记录,如果是同一个客户重新链接的话,直接返回java的session的数据ssemiter给前端,前端自动接着获取日志。

ssemiter:详情自行百度ssemiter相关【session存储链接,定时任务线程池定时触发】

第二:

读取日志文件的时候需要逻辑:

第一:记录当前point

如果pint!=当前日志长度:要么刷新日志了,要么更新日期重新生成日志了

point需要记录,最好是记录在redis中--带开发,防止分布式部署导致日志获取错乱问题。

如果是刷新,防止一次读取太多数据,默认从倒数500行开始。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值