WebSocket实时读取日志文件(Springboot2.1.7)

文章来源原创   作者:临窗旋墨   发布时间:2021-09-13   阅读:984   标签:日志,springboot

WebSocket实时读取日志文件(Springboot2.1.7

git源码地址

项目的初衷

  • 由于公司开发环境和测试环境是分内外网,二者是隔离的。某些场景需要测试环境的日志信息,每次测试人员为开发复现比较麻烦,既要复现错误操作,又要登录测试服务器拉取日志文件,然后在日志中查找错误,然后再在开发环境操作。

  • 因此开发出这个简单的小项目,用于实时查看日志文件,并提供下载功能。

版本说明:

第一版

这一个版本用是前端轮询的方式获取日志信息,前端还搞了tail和less两种方式,还引入了一堆前端的东西,花里胡哨的华而不实(主要我不写前端很多年)。

第二版-当前版

当前版本修改为websocket版本,后端通过WatchService实时监控文件是否发生变化,然后主动推送给前端。

  • 前端没有引入太多的东西,只有一个index.htmlbootstrap
  • 页面功能也简单,只有tail查看日志和下载日志。

代码说明

  1. application.properties只需要一个配置log.dirs,表示日志所在文件夹,多个则英文逗号分隔

    LogWatchUtil.java中会为每个文件夹开启一个守护线程,通过WatchService监控文件夹中的文件内容是否变化。

  2. 前端页面非常简单,只有一个日志文件夹列表和一个日志控制台;

    功能也简单,只有选择文件夹;查看日志;下载日志;情况控制台和管理连接;

    image-20210426114647571

其他说明

ngin代理需要额外配置一下请求头,如下
  1. proxy_http_version 1.1;
  2. proxy_set_header Upgrade $http_upgrade;
  3. proxy_set_header Connection "Upgrade";
HTTPS下的websocket需要使用wss://而不是ws://

项目中已经在index.html中自行处理

  • 202104
  • Vic.xu

发表评论

目录