网站首页 > 知识剖析 正文
项目介绍
本来这个项目也是为了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 访问的日志文件。
- 打开源文件: src/main/java/org/yu/LogWebSocketHandle.java
- 找到 logMap 静态代码块。
- 修改或添加您自己的日志文件路径。
示例:
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. 访问和使用
- 打开您的 Web 浏览器。
- 访问地址: http://<您的服务器IP>:8080/log.html
- 在页面顶部的下拉菜单中,选择您在 logMap 中配置的日志文件。
- 日志内容将会实时显示在页面上。
前端快捷键:
- 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
猜你喜欢
- 2025-09-24 强劲新版本来袭!jQuery 4.0.0、Rsbuild 0.4、Shiki v1.0发布!
- 2025-09-24 再见 Swagger!国人开源了一款超好用的 API 文档生成框架真香
- 2025-09-24 JSP – 支持WORD上传的富文本编辑器
- 2025-09-24 Vue+SpringBoot 集成 PageOffice 实现在线编辑Word、excel文档
- 2025-09-24 民办学生加薪无望参加达内Web前端培训 获得月薪10k告别“月光族”
- 2025-09-24 jQuery.ZoomLoad.js 仅1.5k_jquery插件下载安装
- 最近发表
-
- 不用Flexbox, 一行代码搞定CSS居中难题
- 使用 HTML、CSS 和 JS 创建令人惊叹的粒子背景效果
- CSS样式隔离:12个技巧让冲突率降低75%
- Python开发爬虫的常用技术架构_python网络爬虫开发
- DISMTools v0.5.1 Update 1_DISMTools v0.5.1 Update 16
- Spring MVC 完整配置指南:WebMvcConfigurer 实战全解析
- Python3 XML解析:探索数据交换与处理的高效工具(38)
- 《Java核心技术·卷 Ⅱ》知识点总结
- MyBatis3源码解析-执行SQL流程_mybatis3源码深度解析
- 印度计算机应急响应小组警告:谷歌Chrome、Zoho软件存在多个漏洞
- 标签列表
-
- xml (46)
- css animation (57)
- array_slice (60)
- htmlspecialchars (54)
- position: absolute (54)
- datediff函数 (47)
- array_pop (49)
- jsmap (52)
- toggleclass (43)
- console.time (63)
- .sql (41)
- ahref (40)
- js json.parse (59)
- html复选框 (60)
- css 透明 (44)
- css 颜色 (47)
- php replace (41)
- css nth-child (48)
- min-height (40)
- xml schema (44)
- css 最后一个元素 (46)
- location.origin (44)
- table border (49)
- html tr (40)
- video controls (49)