gos-log 基于Go语言的轻量级高性能的大日志检索系统
https://gitee.com/dianjiu/gos-log
https://github.com/dianjiu/gos-log
https://gitee.com/dianjiu/gos-log-vue
https://github.com/dianjiu/gos-log-vue
账号:admin
密码:admin
# 进入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
# 克隆项目 git clone https://github.com/dianjiu/gos-log-vue.git # 进入项目目录 cd gos-log-vue # 安装依赖 yarn install # 启动服务 yarn run dev
# 打包服务端 cd gos-log/logs bee pack -be GOOS=linux # 打包客户端 cd gos-log/logc bee pack -be GOOS=linux # 准备数据库 见gos-log项目下的sql文件夹
# 解压缩 tar -zxf logs.tar.gz -C ./ # 授权 chmod 777 logs # 修改数据库配置 sudo vim conf/app.conf # 启动 nohup ./logs >> logs.log &
# 解压缩 tar -zxf logc.tar.gz -C ./ # 授权 chmod 777 logc # 启动 nohup ./logc >> logc.log &
# 打包构建 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 |
[root@fieldyang01 data]# docker run -it --name=gogs -p 3022:22 -p 3000:3000 -v /root/yangzw/docker/gogs/data:/data gogs/gogs Unable to find image 'gogs/gogs:latest' locally Trying to pull repository d
记一次测试虚拟机异常关机导致的问题 关于[root@master log]# kubectl get node The connection to the server 192.168.0.105:6443 was refused - did you specify the right host or port? 这个问题网上的大部分解决方案是kubeadm init 直接这么搞我相信肯定能恢复,
Assigning loggers to package-level variables is an anti-pattern. When you declare var log = mylogger.New() in the package namespace, you create a tight compile-time dependency on the particular brand
遇到 ClassCastException: org.slf4j.impl.Log4jLoggerFactory cannot be cast to ch.qos.logback.classic.LoggerContext 查看log是否提示: SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in..
主要内容: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