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了