gos-log

日志检索系统
授权协议 Apache
开发语言 Google Go
所属分类 管理和监控、 日志分析和统计
软件类型 开源软件
地区 国产
投 递 者 东方旭东
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

gos-log 基于Go语言的轻量级高性能的大日志检索系统

开源地址

gos-log

https://gitee.com/dianjiu/gos-log

https://github.com/dianjiu/gos-log

gos-log-vue

https://gitee.com/dianjiu/gos-log-vue

https://github.com/dianjiu/gos-log-vue

演示地址

http://goslog.dianjiu.org.cn

账号:admin
密码:admin

演示截图

登陆页

image

 

客户端

image

 

项目管理

image

 

日志查找

image

 

项目构建

gos-log

# 进入go工作空间
cd ~/codes/go/src
# 配置go国内代理
sudo vim ~/.bash_profile
# 新增如下内容 
export GOPATH=/Users/dianjiu/Codes/go
export GOROOT=/usr/local/go
export GOBIN=$GOPATH/bin
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
export GOPROXY=https://goproxy.cn
export GO111MODULE=on
# 使配置生效
source ~/.bash_profile
# 安装beego依赖
go get github.com/astaxie/beego
go get github.com/beego/bee
# 克隆项目
git clone https://github.com/dianjiu/gos-log.git
# 分别进入项目目录
cd gos-log/logs     #进入服务端
cd gos-log/logc     #进入客户端
# 启动服务
bee run

 

gos-log-vue

# 克隆项目
git clone https://github.com/dianjiu/gos-log-vue.git

# 进入项目目录
cd gos-log-vue

# 安装依赖
yarn install

# 启动服务
yarn run dev

 

项目部署

gos-log

# 打包服务端
cd gos-log/logs
bee pack -be GOOS=linux
# 打包客户端
cd gos-log/logc
bee pack -be GOOS=linux
# 准备数据库 见gos-log项目下的sql文件夹

 

gos-log-logs

# 解压缩
tar -zxf logs.tar.gz -C ./ 
# 授权
chmod 777 logs 
# 修改数据库配置
sudo vim conf/app.conf 
# 启动
nohup ./logs >> logs.log &

 

gos-log-logc

# 解压缩
tar -zxf logc.tar.gz -C ./ 
# 授权
chmod 777 logc 
# 启动
nohup ./logc >> logc.log &

 

gos-log-vue

# 打包构建
yarn run build
# 把dist目录下的文件拿到服务器部署即可
# nginx部署如下nginx.conf
server {
    listen       2022;
    server_name  localhost;

    location / {
        root /web/gos-log/vue;
        index  index.html index.htm;
        try_files $uri $uri/ /index.html; 
    }
    location /api {
        rewrite  ^/api/(.*)$ /$1 break;
        proxy_pass http://127.0.0.1:2021;
    }
}

性能测试

系统硬件

CPU Intel® Core™ i5-10210U CPU @ 1.60GHz × 8
内存 16G
硬盘 512.1 GB
操作系统 Ubuntu 20.04.2 LTS 64位
GNOME版本 3.36.8

系统环境

Java环境 ORACLE JDK13.0.2
Go环境 GO1.15.7 linux/amd64
Python环境 Python 3.8.5

性能对比

单文件逐行读取  17.8G test.log (单线程读取)

语言 test1 test2 test3 test4 test5 总耗时 平均耗时
Go 32.99s 34.24s 30.33s 31.21s 35.70s 164.16s 32.83s
Python 32分钟还没执行完            
Java 226s 206s 153s 219s 183s 987s 197.4s
 相关资料
  • 主要内容:1 redo log重做日志,1.1 redo log文件格式,2 binlog归档日志,2.1 binlog 文件格式,3 undo log回滚日志,4 日志参数详细介绍了Mysql的日志系统中的三种日志:重做日志(redo log)、归档日志(binlog)、回滚日志(undo log )以及一条更新sql的执行流程。 我们的sql可以分为两种,一种是查询,一种是更新(插入,更新,删除),此前学习了一条查询sql语句的执行流程,而如果是更新语句,则除了上面的流程之外(更新还会导致相

  • DoitPHP所提供的Log类主要用于日志处理。当主配置文件中开启日记记录功能时(日记功能开启,Debug调试功能关闭),若程序运行异常时会在logs目录内生成log日志文件,这样便于监控程序运行。Log类只提供两个类方法write()和show()。 类方法使用说明: 1、write($message, $level = 'Error', $logFileName = null) 日志写入操作

  • NSLog方法 为了打印日志,我们使用Objective-C编程语言中的NSLog方法,我们在Hello World示例中使用了该方法。 让我们看一下打印“Hello World”字样的简单代码 - #import <Foundation/Foundation.h> int main() { NSLog(@"Hello, World! \n"); return 0; } 现在,当我们

  • log4j API提供org.apache.log4j.jdbc.JDBCAppender对象,该对象可以将日志记录信息放在指定的数据库中。 JDBCAppender配置 属性 描述 bufferSize 设置缓冲区大小。 默认大小为1。 driver 将驱动程序类设置为指定的字符串。 如果未指定驱动程序类,则默认为sun.jdbc.odbc.JdbcOdbcDriver 。 layout 设置要

  • Apache log4j提供了各种Layout对象,每个对象都可以根据各种布局格式化日志记录数据。 还可以创建一个Layout对象,以特定于应用程序的方式格式化日志记录数据。 所有Layout对象都从Appender对象接收LoggingEvent对象。 然后,Layout对象从LoggingEvent中检索消息参数,并应用适当的ObjectRenderer来获取消息的String表示形式。 布局

  • 由来 准确的说,Hutool-log只是一个日志的通用门面,功能类似于Slf4j。既然像Slf4j这种门面框架已经非常完善,为何还要自己做一个门面呢?下面我列举实践中遇到的一些问题: 已有门面存在问题 log对象创建比较复杂 很多时候我们为了在类中加日志不得不写一行,而且还要去手动改XXX这个类名 private static final Logger log = LoggerFactory.ge