WebSocket实时读取日志文件(Springboot2.1.7)
文章来源:原创
作者:临窗旋墨
发布时间:2021-09-13
阅读:486
标签:日志,springboot
许秋冬偷偷隐藏起来的markdown原文,测试对蜘蛛是否友好
### `WebSocket`实时读取日志文件(`Springboot2.1.7`)
[git源码地址](https://gitee.com/xuqiudong/readlog)
#### 项目的初衷
- 由于公司开发环境和测试环境是分内外网,二者是隔离的。某些场景需要测试环境的日志信息,每次测试人员为开发复现比较麻烦,既要复现错误操作,又要登录测试服务器拉取日志文件,然后在日志中查找错误,然后再在开发环境操作。
- 因此开发出这个简单的小项目,用于实时查看日志文件,并提供下载功能。
#### 版本说明:
##### 第一版
> 这一个版本用是前端轮询的方式获取日志信息,前端还搞了tail和less两种方式,还引入了一堆前端的东西,花里胡哨的华而不实(主要我不写前端很多年)。
##### 第二版-当前版
> 当前版本修改为`websocket`版本,后端通过`WatchService`实时监控文件是否发生变化,然后主动推送给前端。
>
> - 前端没有引入太多的东西,只有一个`index.html`和`bootstrap`
> - 页面功能也简单,只有tail查看日志和下载日志。
#### 代码说明
1. `application.properties`只需要一个配置`log.dirs`,表示日志所在文件夹,多个则英文逗号分隔
> 在`LogWatchUtil.java`中会为每个文件夹开启一个守护线程,通过`WatchService`监控文件夹中的文件内容是否变化。
2. 前端页面非常简单,只有一个日志文件夹列表和一个日志控制台;
> 功能也简单,只有选择文件夹;查看日志;下载日志;情况控制台和管理连接;

#### 其他说明
##### ngin代理需要额外配置一下请求头,如下
```properties
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
```
##### `HTTPS`下的`websocket`需要使用`wss://`而不是`ws://`
> 项目中已经在`index.html`中自行处理
- 202104
- Vic.xu