WebSocket
实时读取日志文件(Springboot2.1.7
)由于公司开发环境和测试环境是分内外网,二者是隔离的。某些场景需要测试环境的日志信息,每次测试人员为开发复现比较麻烦,既要复现错误操作,又要登录测试服务器拉取日志文件,然后在日志中查找错误,然后再在开发环境操作。
因此开发出这个简单的小项目,用于实时查看日志文件,并提供下载功能。
这一个版本用是前端轮询的方式获取日志信息,前端还搞了tail和less两种方式,还引入了一堆前端的东西,花里胡哨的华而不实(主要我不写前端很多年)。
当前版本修改为
websocket
版本,后端通过WatchService
实时监控文件是否发生变化,然后主动推送给前端。
- 前端没有引入太多的东西,只有一个
index.html
和bootstrap
- 页面功能也简单,只有tail查看日志和下载日志。
application.properties
只需要一个配置log.dirs
,表示日志所在文件夹,多个则英文逗号分隔
在
LogWatchUtil.java
中会为每个文件夹开启一个守护线程,通过WatchService
监控文件夹中的文件内容是否变化。
前端页面非常简单,只有一个日志文件夹列表和一个日志控制台;
功能也简单,只有选择文件夹;查看日志;下载日志;情况控制台和管理连接;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
HTTPS
下的websocket
需要使用wss://
而不是ws://
项目中已经在
index.html
中自行处理