logserver是使用logback、light-4j、commons-exec等构建的简单日志服务,参考项目logbackserverlight4j,支持跟踪日志、分页查看、搜索定位、下载文件等功能,演示地址:https://log.xlongwei.com/

  • 跟踪日志:即时输出多个client项目产生的日志,多个client项目使用contextName区分(可选包含主机名变量)

  • 分页查看:支持搜索定位,然后使用Ctrl+F搜索当前网页即可

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

logserver 日志服务项目发布的更多相关文章

  1. web站点和windows服务项目发布时如何排除指定文件

    在发布asp.net站点和windows服务项目时,有的时候这样的需求:msbuild编译之后发布到服务器指定目录时要排除指定文件,比如通过jenkins构建时,不希望覆盖原来的Web.config和 ...

  2. 消费阿里云日志服务SLS

    此文档只关心消费接入,不关心日志接入,只关心消费如何接入,可直接跳转到[sdk消费接入] SLS简介 日志服务: 日志服务(Log Service,简称 LOG)是针对日志类数据的一站式服务,在阿里巴 ...

  3. VS2017中使用组合项目_windows服务+winform管理_项目发布_测试服务器部署

    前言:作为一名C#开发人员,避免不了常和windows服务以及winform项目打交道,本人公司对服务的管理也是用到了这2个项目的组合方式进行:因为服务项目是无法直接安装到计算器中,需要使用命令借助微 ...

  4. 使用Jenkins自动发布Windows服务项目

    不同于发布Web项目,自动发布Windows服务项目需要解决以下几个问题: 如何远程停止和开启服务?需要在发布前停止服务,在发布完成后开启服务. 如何上传编译文件到目标服务器? 问题1:如何远程停止和 ...

  5. Eclipse下安装SVN插件以及连接SVN服务并发布项目

    Eclipse安装SVN插件 Help->Eclipse MarketPlace 查找并安装Subclipse插件 按默认步骤完成SVNEclipse插件的安装(安装完成后需要重启Eclipse ...

  6. 验证码在后台的编写,并实现点击验证码图片时时发生更新 C# 项目发布到IIS后不能用log4net写日志

    验证码在后台的编写,并实现点击验证码图片时时发生更新   验证码在软件中的地位越来越重要,有效防止这种问题对某一个特定注册用户用特定程序暴力破解方式进行不断的登陆尝试:下面就是实现验证码的基本步骤: ...

  7. Docker 搭建 ELK 读取微服务项目的日志文件

    思路: 在docker搭建elasticsearch与kibana来展示日志,在微服务部署的机子上部署logstash来收集日志传到elasticsearch中,通过kibana来展示,logstas ...

  8. 仵航说 SpringBoot项目配置Log日志服务-仵老大

    今天领导让我配置一个log日志服务,我哪里见过哟,然后就去百度了,结果挨个试下去,找到了一个能用的,分享给大家 大致四个地方 分别是 1.pom文件需要引入依赖 2.创建一个TestLog类 3.在y ...

  9. AMQ学习笔记 - 15. 实践方案:基于ActiveMQ的统一日志服务

    概述 以ActiveMQ + Log4j + Spring的技术组合,实现基于消息队列的统一日志服务. 参考:Spring+Log4j+ActiveMQ实现远程记录日志——实战+分析 与参考文章的比较 ...

随机推荐

  1. 解决 VS Code「Code Runner」插件运行 python 时的中文乱码问题

    描述 这里整理了两种 VS Code「Code Runner」插件运行 python 时乱码的解决方案.至于设置「Auto Guess Encoding」为 true 的操作这里就不多描述了. 乱码截 ...

  2. 小程序page中生命周期

    onLoad -- 页面被加载出来 onShow -- 页面显示出来后  退出后两小时进来,只会执行这个生命周期 onRady -- (逻辑层传给渲染层后才会执行)监听页面初次渲染完成 onHide ...

  3. 【小知识点】去除inline-block元素间间距的办法

    之前一直用float浮动方法布局,因为display:inline-block有间隙,现在找到办法了.在父元素上面加font-sise:0,就可以了. 效果如图: 代码如下: <!DOCTYPE ...

  4. 【Struts2】Ognl与ValueStack

    一.OGNL 1.1 概述 1.2 OGNL 五大类功能 1.3 演示 二.ValueStack 2.1 概述 2.2 ValueStack结构 2.3 结论 2.3 一些问题 三.OGNL表达式常见 ...

  5. Maven新建项目出现 Could not calculate build plan:plugin 错误解决办法

    删除本地.m2仓库中 org.apache.maven.plugins:maven-resources-plugin所在目录. 然后右击项目 Maven->Update Project-> ...

  6. pandas库的一些操作

    1.pd.value_count():带入数值可以计算出value有多少的类别 #得到类别的降序 tips['day'].value_counts(sort=True,ascending=True) ...

  7. 桌面Ubuntu卡死解决方案

    通常情况下,我们用桌面Ubuntu会遇到卡住的的情况,我们一般会进行强制关机处理,但其实还有另一种操作,不用强制关机. 切换到tty模式,执行命令pkill X;start X;就能重新进入桌面,不用 ...

  8. Is there a difference between `==` and `is` in Python?

    is will return True if two variables point to the same object, == if the objects referred to by the ...

  9. shell脚本基础编写

    shell脚本的格式 名称:Shell 脚本文件的名称可以任意,但为了避免被误以为是普通文件,建议将 .sh 后缀加上,以表示是一个脚本文件. shell 脚本中一般会出现三种不同的元素: 第一行的脚 ...

  10. Java&Selenium Web自动化测试框架理念

    一.自动化测试含义 在自动化测试领域内流传着一个说法:单元测试才是自动化测试的核心,在自动化测试里,无论框架何等完美都不可能脱离单元测试,单元测试将会是自动化测试里最小的单位,把它看作单位一,若干个单 ...