# readlog **Repository Path**: chaojunma/readlog ## Basic Information - **Project Name**: readlog - **Description**: springboot+websocket实时读取日志文件到浏览器 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 7 - **Created**: 2021-11-17 - **Last Updated**: 2022-05-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ### `WebSocket`实时读取日志文件(`Springboot2.1.7`) #### 项目的初衷 - 由于公司开发环境和测试环境是分内外网,二者是隔离的。某些场景需要测试环境的日志信息,每次测试人员为开发复现比较麻烦,既要复现错误操作,又要登录测试服务器拉取日志文件,然后在日志中查找错误,然后再在开发环境操作。 - 因此开发出这个简单的小项目,用于实时查看日志文件,并提供下载功能。 #### 版本说明: ##### 第一版 > 这一个版本用是前端轮询的方式获取日志信息,前端还搞了tail和less两种方式,还引入了一堆前端的东西,花里胡哨的华而不实(主要我不写前端很多年)。 ##### 第二版-当前版 > 当前版本修改为`websocket`版本,后端通过`WatchService`实时监控文件是否发生变化,然后主动推送给前端。 > > - 前端没有引入太多的东西,只有一个`index.html`和`bootstrap` > - 页面功能也简单,只有tail查看日志和下载日志。 #### 代码说明 1. `application.properties`只需要一个配置`log.dirs`,表示日志所在文件夹,多个则英文逗号分隔 > 在`LogWatchUtil.java`中会为每个文件夹开启一个守护线程,通过`WatchService`监控文件夹中的文件内容是否变化。 2. 前端页面非常简单,只有一个日志文件夹列表和一个日志控制台; > 功能也简单,只有选择文件夹;查看日志;下载日志;情况控制台和管理连接; ![image-20210426114647571](assert/image-20210426114647571.png) #### 其他说明 ##### 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