logserver是使用logback、light-4j、commons-exec等构建的简单日志服务,参考项目logbackserver和light4j,支持跟踪日志、分页查看、搜索定位、下载文件等功能,演示地址:https://log.xlongwei.com/。
- 跟踪日志:即时输出多个client项目产生的日志,多个client项目使用contextName区分(可选包含主机名变量)
- 分页查看:支持搜索定位,然后使用Ctrl+F搜索当前网页即可
- 下载文件:支持搜索并下载,支持nginx直接浏览目录并另存为
- 相关技术
- logback:日志服务端使用ServerSocketReceiver监听端口,client客户端使用SocketAppender发送日志到远端服务
- light-4j:轻量级框架,内存少,性能高,支持web socket
- Tailer:来自commons-io包,用于跟踪日志;web socket用于浏览器通讯,页面还用到了reconnecting-websocket.min.js
- commons-exec:分页查看和搜索使用了linux命令实现(windows使用了LineNumberReader),页面使用了vue + bootstrap
- 发展过程
- nfs:映射其他主机的共享目录,让多台主机可以访问同一个文件
- tailf:将多个项目的日志汇总到单个文件,效果不好
- logbackserver:简单的日志服务端,没有前端界面,配合nfs可以在单台主机上查看所有日志了,项目见logback-server
- logstation:可以在浏览器跟踪日志了,但服务端不稳定,经常死掉
- websocket:light-4j支持web socket在线聊天,那么就可以用来跟踪日志,于是想到了commons-io的Tailer类
- commons-exec:想到使用find、grep、sed等命令来实现搜索文件名、分页查看、搜索行号等功能
- vue.js + bootstrap:现学现卖,页面布局、事件响应、动态绑定都很方便
- logserver:综合以上,就有了logserver项目,以后搜索日志再也不用登录linux了