基于 Web 的实时日志查看工具(源码git地址在最后)

boyanx1天前技术教程1

项目介绍

本来这个项目也是为了gitchat的一篇文章写的,但是这篇gitchat的文章没保留,有点可惜了哈,
本来不想重新写了,正好让ai帮我整理了下,效果还可以。源码git地址在最后。

JFinal Real-time Log Viewer 是一个轻量级的、基于 Web 的实时日志查看工具。它使用 Java (JFinal + Undertow) 作为后端,通过 WebSocket 将服务器日志实时推送到前端页面进行展示。

主要功能

  • 实时日志流:通过 tail -f 命令和 WebSocket,实现日志的实时无刷新加载。
  • 多日志文件支持:可在后端配置多个日志文件,通过前端下拉框轻松切换。
  • Web 界面:提供一个简洁的网页客户端,无需通过 SSH 登录服务器即可查看日志。
  • 易于部署:项目打包为单个可执行的 jar 文件,内置 Undertow 服务器,无额外依赖。
  • 安全性:前端只能请求后端预先配置好的日志文件,避免了任意文件读取的风险。

技术栈

  • 后端:JFinal, Undertow, Java WebSocket (JSR 356)
  • 前端:HTML, JavaScript, jQuery, WebSocket
  • 构建:Maven

使用文档

1. 环境要求

  • Java Development Kit (JDK): 1.8 或更高版本。
  • Maven: 用于项目构建。
  • 类 Unix 操作系统 (Linux, macOS): 项目核心功能依赖于 tail -f 命令,因此不支持 Windows 系统。

2. 配置

在部署前,您需要配置希望通过 Web 访问的日志文件。

  1. 打开源文件: src/main/java/org/yu/LogWebSocketHandle.java
  2. 找到 logMap 静态代码块。
  3. 修改或添加您自己的日志文件路径。

示例:

public class LogWebSocketHandle {
    // ...
	private static Map<String, String> logMap = new HashMap<String, String>();
	static {
        // key: 是前端下拉框显示的名称 (例如 "catalina.out")
        // value: 是日志文件在服务器上的绝对路径
		logMap.put("catalina.out","/opt/dir/d/apache-tomcat-9.0.31/logs/catalina.out");
		logMap.put("manager-log","/opt/dir/d/apache-tomcat-9.0.31/logs/manager.2020-06-08.log");
        // 在这里添加您自己的日志文件
        // logMap.put("my-app-log", "/var/log/my-app.log");
	}
    // ...
}

3. 构建项目

在项目根目录下,执行以下 Maven 命令:

mvn package

该命令会编译项目,并将所有依赖打包成一个可执行的 JAR 文件。构建成功后,您会在 target/ 目录下找到 jfinal_log-0.0.1.jar 文件。

4. 运行

使用 java -jar 命令来启动应用:

java -jar target/jfinal_log-0.0.1.jar

服务启动后,默认会监听 8080 端口。

5. 访问和使用

  1. 打开您的 Web 浏览器。
  2. 访问地址: http://<您的服务器IP>:8080/log.html
  3. 在页面顶部的下拉菜单中,选择您在 logMap 中配置的日志文件。
  4. 日志内容将会实时显示在页面上。

前端快捷键:

  • Ctrl + C: 停止当前日志的刷新。
  • 回车 (Enter): 在日志输出中添加一个空行,方便分隔查看。

备注

catalina.out:
/opt/dir/d/apache-tomcat-9.0.31/logs/catalina.out

manager-log:
/opt/dir/d/apache-tomcat-9.0.31/logs/manager.2020-06-08.log

是我早期的测试目录,请在项目中自行替换。
git地址:

https://gitcode.com/boostyu/jfinal_log

标签: jq 刷新页面

相关文章

实时数据显示--SignalR实例演示_实时数据展示工具

近段时间,有实现一个看板的功能,就是用户更新信息时,即是对数据库的数据进行插入,更新,或是删除时,在墙上的屏幕的数据不需要人为去刷新,用户就能看到更新后的数据。实现此功能,Insus.NET使用Sig...

Vue进阶(壹佰):vue刷新当前页面,重载页面数据

前言在开发Vue项目过程中,遇到页面样式混乱情形。后发现可通过刷新页面解决该问题,经过问题探究,发现使用最简单的页面刷新方法location.reload()或this.$router.go(0)均会...

web大文件断点续传_大文件上传和断点续传

web大文件断点续传,web大文件断点续传解决方案,web大文件断点续传思路,web大文件断点续传实例,web大文件断点续传源码,web大文件上传,web大文件分块上传,web大文件分片上传,web文...

ios事件混乱+点击事件失效+一些兼容问题解决「坑记」

ios12下,h5事件在微信浏览器内,事件混乱现象:例如点击文本框,输入文字后,会发现整个网页的点击事件都无法触发,像失效了一样。根本原因:根本原因是:input聚焦后页面被顶起,然后失焦后页面回位,...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。