4 Star 21 Fork 10

青松 / glogcenter

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
LGPL-3.0

缘起

昔者,吾日志中心之事,恒用传统三件套,曰ELK,然岁月流转,如行舟江河,难免潮涌沉浮,不维其盛,则不足以久存。故见诸多不如意,如定制之难,如索引之弗易,如初启之迟缓如蜗牛,如操作之陌生如他邦,如资甚之贪婪如饕餮之兽,如崩溃之险如山崩川竭,疑难重重,如堆积之沙石。

终有一日,愈发执志,以go之巧工,铸造新日志中心,其表现多舛,实足以令人惊艳,是以,赋名曰glogcenter,亦称GLC,开仓建库。

当下,架库之作已可窥见,与君共享。
(以上由GPT编辑)



国外仓库地址: https://github.com/gotoeasy/glogcenter
国内(仅同步): https://gitee.com/gotoeasy/glogcenter

演示地址(网络可能不稳定): https://glc.gotoeasy.top

特点

  • 使用golang实现,具备go的各种特性优势,特别是性能高、节省资源
  • 基于LSMT实现文件存储,结合日志写多读少特点稍加设计,真是快
  • 日志吞食量每秒近万条,闲时建索引速度每秒数千条,能满足大多项目需要
  • 支持多关键词全文检索,支持中文分词,毫秒级查询响应,无感般的流畅
  • 内置提供VUE实现的日志查询管理界面,页面简洁大方,操作习惯自然
  • 支持个性化环境变量开关控制,支持日志仓自动化维护,灵活省心
  • 提供docker镜像,支持容器化部署,方便之极
  • 提供java项目日志收集包,java项目闭环支持
  • 提供golang项目日志收集包,golang项目闭环支持
  • 支持从RabbitMQ收取日志信息,满足更多闭环需求
  • 支持登录验证,支持秘钥校验,支持跨域设定,灵活的服务安全性保障
  • 支持多服务集群模式部署,提供服务高可用性保障、数据冗余性保障
  • 系统间的耦合性极低,可以非常方便的接入各系统,上至央企大项目下至本地开发调试,已历经众多案例磨炼,表现稳定出色,达生产级应用要求

docker单机部署模式简易示例

# 快速体验(其中通过GLC_TEST_MODE=true开启测试模式,页面上会显示生成测试数据的按钮,方便测试或快速体验)
docker run -d -p 8080:8080 -e GLC_TEST_MODE=true gotoeasy/glc

# 外挂数据目录
docker run -d -p 8080:8080 -v /glc:/glogcenter gotoeasy/glc

# 【简易用法】
# 启动成功后即可按 http://ip:port 访问
# 支持多关键词检索,比如输入【key1、key2、key3】检索出同时满足这3个关键词的结果
# 默认每次检索100条,滚动到底部时自动检索后面100条

docker集群部署模式简易示例

# 以下3台以集群方式启动,配置本节点地址及关联节点地址即可
# 采用“乐观集群”方式,简易选主(简单排序)+日志群发(忽略失败)+数据补偿(隔日同步历史数据)

# 服务1
docker run -d -p 8080:8080 -e GLC_CLUSTER_MODE=true -e GLC_SERVER_URL=http://172.27.59.51:8080 \
       -e GLC_CLUSTER_URLS=http://172.27.59.51:8080;http://172.27.59.52:8080;http://172.27.59.53:8080 \
       gotoeasy/glc
# 服务2
docker run -d -p 8080:8080 -e GLC_CLUSTER_MODE=true -e GLC_SERVER_URL=http://172.27.59.52:8080 \
       -e GLC_CLUSTER_URLS=http://172.27.59.51:8080;http://172.27.59.52:8080;http://172.27.59.53:8080 \
       gotoeasy/glc
# 服务3
docker run -d -p 8080:8080 -e GLC_CLUSTER_MODE=true -e GLC_SERVER_URL=http://172.27.59.53:8080 \
       -e GLC_CLUSTER_URLS=http://172.27.59.51:8080;http://172.27.59.52:8080;http://172.27.59.53:8080 \
       gotoeasy/glc

docker启动环境变量

  • GLC_STORE_NAME_AUTO_ADD_DATE日志仓是否自动按日存储,默认true
  • GLC_SAVE_DAYS日志仓按日存储自动维护时的保留天数(有效范围0~1200),0表示不自动删除,默认180
  • GLC_SEARCH_MULIT_LINE,是否对日志列的全部行进行索引检索,默认false仅第一行
  • GLC_ENABLE_LOGIN是否开启用户密码登录功能,默认false
  • GLC_USERNAME管理员用户名,默认glc,从0.13.0版本开始,管理员有新增用户及权限管理功能,并且有全部系统的查询权限
  • GLC_PASSWORD管理员密码,默认GLogCenter100%666
  • GLC_TOKEN_SALT用以生成令牌的字符串令牌盐,开启登录功能时建议设定提高安全性,默认空白
  • GLC_ENABLE_SECURITY_KEY日志添加的接口是否开启API秘钥校验,默认false
  • GLC_HEADER_SECURITY_KEYAPI秘钥的header键名,默认X-GLC-AUTH
  • GLC_SECURITY_KEYAPI秘钥,默认glogcenter
  • GLC_ENABLE_CORS是否允许跨域,默认false
  • GLC_PAGE_SIZE每次检索件数,默认100(有效范围1~1000
  • GLC_ENABLE_WEB_GZIP网页服务是否开启压缩,默认false
  • GLC_ENABLE_AMQP_CONSUME是否开启rabbitMq消费者接收日志,默认false
  • GLC_AMQP_ADDR消息队列rabbitMq连接地址,例:amqp://user:password@ip:port/,默认空白
  • GLC_AMQP_JSON_FORMAT消息队列rabbitMq消息文本是否为json格式,默认true
  • GLC_CLUSTER_MODE是否集群模式启动,默认false
  • GLC_SERVER_URL集群模式时的本节点服务地址,默认空白
  • GLC_CLUSTER_URLS集群模式时的关联节点服务地址,多个时;分隔,默认空白
  • GLC_GOMAXPROCS使用最大CPU数量,值不在实际范围内时按最大值看待,默认最大值,常用于docker方式
  • GLC_TEST_MODE是否开启测试模式,开启时显示生成测试数据的按钮,供测试或快速体验用,默认false
  • GLC_WHITE_LIST白名单,多个用逗号分隔,黑白名单冲突时白名单优先,默认空白。可设定IP,最后段支持通配符,如1.2.3.*,内网IP默认都是白名单不必设定,实验性质的支持区域名称(因为IP地域查询可能有误差),如上海市,深圳市
  • GLC_BLACK_LIST黑名单,多个用逗号分隔,黑白名单冲突时白名单优先,默认空白。可设定IP,最后段支持通配符,如1.2.3.*,也支持单个通配符*代表全部(也就是只允许内网或白名单指定使用),实验性质的支持区域名称(因为IP地域查询可能有误差)
  • GLC_IP_ADD_CITY对IP字段是否自动附加城市信息,默认false

接口

  • /glc/v1/log/add日志添加,POSTapplication/json
    字段system: 字符串,对应页面的系统名
    字段date: 字符串,对应页面的日期时间,格式yyyy-MM-dd HH:mm:ss.SSS
    字段text: 字符串,对应页面的日志
    字段servername: 字符串,对应页面的主机名
    字段serverip: 字符串,对应页面的主机IP
    字段loglevel: 字符串,对应页面的日志级别
    字段traceid: 字符串,对应页面的追踪码
    字段clientip: 字符串,对应页面的客户端IP
    字段user: 字符串,对应页面的用户
# 发送测试数据的参考脚本
# 注意时间格式要一致,否则按时间范围检索可能无法得到预想结果
curl -X POST -d '{"system":"demo", "date":"2023-01-01 01:02:03.456","text":"demo log text"}' \
     -H "Content-Type:application/json" http://127.0.0.1:8080/glc/v1/log/add

使用logbackjava项目,支持日志收集,确保主次版本和GLC版本一致

<!-- pom坐标 -->
<dependency>
    <groupId>top.gotoeasy</groupId>
    <artifactId>glc-logback-appender</artifactId>
    <version>0.14.1</version>
</dependency>
<!-- logback配置例子1,发送至 glogcenter -->
<appender name="GLC" class="top.gotoeasy.framework.glc.logback.appender.GlcHttpJsonAppender">
    <glcApiUrl>http://127.0.0.1:8080/glc/v1/log/add</glcApiUrl> <!-- 可通过环境变量 GLC_API_URL 设定 -->
    <glcApiKey>X-GLC-AUTH:glogcenter</glcApiKey>                <!-- 可通过环境变量 GLC_API_KEY 设定 -->
    <system>demo</system>                                       <!-- 可通过环境变量 GLC_SYSTEM 设定 -->
    <layout>
        <pattern><![CDATA[%m %n]]></pattern>
    </layout>
</appender>
<!-- logback配置例子2,发送至 rabbitmq -->
<appender name="GLC" class="top.gotoeasy.framework.glc.logback.appender.GlcAmqpAppender">
    <amqpHost>127.0.0.1</amqpHost>                <!-- 可通过环境变量 GLC_AMQP_HOST 设定 -->
    <amqpPort>5672</amqpPort>                     <!-- 可通过环境变量 GLC_AMQP_PORT 设定 -->
    <amqpUser>rabbitmqUsername</amqpUser>         <!-- 可通过环境变量 GLC_AMQP_USER 设定 -->
    <amqpPassword>rabbitmqPassword</amqpPassword> <!-- 可通过环境变量 GLC_AMQP_PASSWORD 设定 -->
    <system>Demo</system>                         <!-- 可通过环境变量 GLC_SYSTEM 设定 -->
    <layout>
        <pattern><![CDATA[%m %n]]></pattern>
    </layout>
</appender>
<!-- 一个简单的logback-spring.xml配置例子 -->
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false">
    <appender name="CONSOLE"
        class="ch.qos.logback.core.ConsoleAppender">
        <Target>System.out</Target>
        <encoder>
            <pattern>%d-%c-%t-%5p: %m%n</pattern>
        </encoder>
    </appender>

    <appender name="GLC" class="top.gotoeasy.framework.glc.logback.appender.GlcHttpJsonAppender">
        <glcApiUrl>http://127.0.0.1:8080/glc/v1/log/add</glcApiUrl>
        <system>demo</system>
        <layout>
            <pattern><![CDATA[%m %n]]></pattern>
        </layout>
    </appender>

    <root level="DEBUG">
        <appender-ref ref="CONSOLE" />
        <appender-ref ref="GLC" />
    </root>
</configuration>

使用golang语言的项目,提供工具包,开箱即用

# 方式1)通过环境变量自动配置,程序直接使用cmn.Debug(...)写日志即可
export GLC_ENABLE=true # 此配置默认false,要生效必须配置为true
export GLC_API_URL='http://127.0.0.1:8080/glc/v1/log/add'
export GLC_API_KEY='X-GLC-AUTH:glogcenter'
export GLC_SYSTEM=demo
export GLC_LOG_LEVEL=debug # 日志级别(debug/info/warn/error)
// 方式2) 使用前通过程序cmn.SetGlcClient(...)手动配置初始化
import "github.com/gotoeasy/glang/cmn"

func main() {
    // 这里用手动初始化替代环境变量自动配置方式,更多选项详见GlcOptions字段说明
    cmn.SetGlcClient(cmn.NewGlcClient(&cmn.GlcOptions{
        ApiUrl:      "http://ip:port/glc/v1/log/add",
        Enable:      true,
    }))

    cmn.Debug("这是Debug级别日志")
    cmn.Info("这是Info级别日志", "多个参数", "会被拼接")
    gd := &cmn.GlcData{TraceId: "1234567890"} // 跟踪码相同的日志,传入该参数即可
    cmn.Warn("这里的GlcData类型参数都不会打印", "gd只起传值作用", gd)
    cmn.Error("gd参数顺序无关", gd, "用法如同log库,但对GlcData做了特殊的判断处理")
    cmn.WaitGlcFinish() // 停止接收新日志,等待日志都发送完成,常在退出前调用
}

更新履历

开发版latest

  • 日志审计、告警
  • 集群支持动态删减节点(或是页面管理删除)

版本0.14.2

  • 修复#32 隐蔽的权限控制错误问题

版本0.14.1

  • 新增GLC_IP_ADD_CITY环境变量,对IP字段是否自动附加城市信息,默认false
  • 工具包优化取主机IP地址逻辑(优先eth0网卡内网地址),glc-logback-appender同步升级

版本0.14.0

  • 日志新增用户字段,界面新增用户的精确检索条件,当要做特定用户维度的日志审计时,这会显得非常实用
  • glc-logback-appender同步升级,新增MDC存取用户的接口
  • 修复已知问题
更多历史版本更新履历

版本0.13.0

  • 新增用户及系统权限管理,仅管理员能操作,可控制指定用户只能访问指定系统的日志,多系统共用且有数据安全需求时尤显重要
  • 升级使用Go1.21.4进行编译

版本0.12.4

  • 新增会话超时GLC_SESSION_TIMEOUT环境变量,单位为分钟,默认30分钟
  • 优化检索性能,部分多选日志级别的场景,性能改善明显

版本0.12.3

  • 新增跨仓检索支持,分仓模式下有时需要逐个检索日志仓进行确认,确实累人。现在只要清空日志仓条件再选择日期范围,就可以轻松的查取目标数据
  • 改善操作体验,修改页面检索条件后再滚动查询时仍旧是按原条件查询,避免新旧条件不同引发令人困惑的查询结果

版本0.12.2

  • 安全无小事,继续加固,连续登录失败5次后,锁定15分钟限制登录
  • 新加白名单GLC_WHITE_LIST环境变量,多个用逗号分隔,黑白名单冲突时白名单优先,默认空白。可设定IP,最后段支持通配符,如1.2.3.*,内网IP默认都是白名单不必设定,实验性质的支持区域名称(因为IP地域查询可能有误差),如上海市,深圳市
  • 新加黑名单GLC_BLACK_LIST环境变量,多个用逗号分隔,黑白名单冲突时白名单优先,默认空白。可设定IP,最后段支持通配符,如1.2.3.*,也支持单个通配符*代表全部(也就是只允许内网或白名单指定使用),实验性质的支持区域名称(因为IP地域查询可能有误差)

版本0.12.1

  • 新增GLC_TOKEN_SALT令牌盐环境变量,默认空串。如果日志内容比较敏感,应该修改用户密码开启登录功能,同时建议设定令牌盐,提高系统安全性
  • 新增GLC_TEST_MODE是否开启测试模式的开关,开启后将显示生成测试数据用的按钮,供测试或快速体验用,默认false
  • 优化改善

版本0.12.0

  • 增加配置开关GLC_SEARCH_MULIT_LINE,设定为true时,支持对日志列的全部行进行索引和检索,默认false。注意:不会对历史数据进行重新索引,也就是说,设定为true时,新加入的日志会做多行索引,但历史数据如果没有多行索引的仍旧没法进行多行检索
  • 同步升级glc-logback-appender,增加过滤器类GlcFilter用以生成客户端IP和跟踪码,可按需配置使用

版本0.11.7

  • 增加支持开始/停止自动查询,观察实时日志时实用

版本0.11.6

  • 升级使用Go1.21.3,一波安全更新
  • 增加robots.txt,拒绝爬虫爬取内容
  • 其他一些细节改善

版本0.11.5

  • 升级使用Go1.21.1
  • 更新升级依赖包,避免潜在问题
  • 前端页面细节改善

版本0.11.4

  • 支持日志级别多选条件,想排除某种级别进行检索时会很实用
  • 改善前端进一步提高使用体验

版本0.11.3

  • 保留页面中表格的配置,避免再次访问或刷新时自动重置

版本0.11.2

  • 支持下载保存当前检索结果

版本0.11.1

  • 升级使用Go1.21.0
  • 运行时基础镜像alpine升级至3.18
  • 页面检索件数提示信息改善

版本0.11.0

  • 前端全面重构改良,支持表格列宽、位置、显示隐藏等各种个性化设定
  • 新增GLC_ENABLE_CORS参数配置是否允许跨域,默认false,方便系统间对接
  • 新增GLC_PAGE_SIZE参数配置每次检索件数,默认100(有效范围1~1000

版本0.10.2

  • 修复issue #16的查询BUG

版本0.10.1

  • 添加支持日志级别展示列及过滤条件,需同步使用glc-logback-appender:0.10.1
  • 添加支持客户端IP展示列,基于MDC实现,Java项目需参考使用MdcUtil类
  • 添加支持TraceId展示列,基于MDC实现,Java项目需参考使用MdcUtil类

版本0.10.0

  • 页面优化:系统名检索条件可选择输入,可以不用敲打了
  • 页面增加主机名、主机IP展示列,可配置是否显示,适用更多复杂使用场景
  • 同步使用glc-logback-appender:0.10.0,即可自动产生主机名、主机IP信息
  • 修复一些小瑕疵

版本0.9.0

  • 增加分类(系统)检索条件,支持多系统时准确筛选
  • 修复一些小瑕疵

版本0.8.8

  • 增加时间范围检索条件
  • 界面进一步简化优化

版本0.8.7

  • 修复:增加特殊字符转换处理,避免日志中的html标签字样无法显示
  • 修复:docker restart 失败问题

版本0.8.6

  • 升级使用Go1.20,更优秀的编译和运行时,进一步减少内存开销,进一步提高整体CPU性能

版本0.8.5

  • 后端配合前端路由,设定自动跳转改善使用体验

版本0.8.4

  • 代码整理优化,前后端升级依赖包
  • golang编译器升级至1.19.4
  • 运行时基础镜像alpine升级至3.17

版本0.8.3

  • 增加CPU使用限制的配置GLC_GOMAXPROCS,默认使用最大CPU数量,通常非docker启动方式使用
  • 代码优化,升级依赖包

版本0.8.2

  • 优化部分场景下的检索性能
  • 修复一些小问题

版本0.8.1

  • 代码重构改善
  • 支持日志级别配置GLC_LOG_LEVEL,可设定值为debug/info/warn/error,默认info

版本0.8.0

  • 集群支持动态扩增节点,日志自动转发
  • 集群支持自动选举Master
  • 隔日之前的历史日志仓自动检查同步

版本0.7.0

  • 增加日志转发功能,支持多服务集群模式部署,确保服务及数据保存的冗余性

版本0.6.0

  • 升级使用Go1.19
  • 优化执行文件体积,此版本考虑直接运行发布,以适用更多部署场景
  • 支持命令行参数使用-v查看版本
  • 在Linux系统下支持命令行参数使用-d以后台方式启动
  • 在Linux系统下支持命令行参数使用stop停止程序
  • 在Linux系统下支持命令行参数使用restart重启程序
  • logbackjar包,支持通过设定环境变量GLC_ENABLE=false关闭日志发送功能

版本0.5.0

  • 增加用户密码登录功能,可设定是否开启用户密码登录
  • 日志按日分仓存储时,默认自动维护保存最多180天,自动维护时不能手动删除日志仓
  • 改善日志仓管理页面的展示
  • 删除旧版接口/glc/add/glc/searchmaven公共仓库包同步修改并更新版本
  • Docker镜像设定默认时区Asia/Shanghai

版本0.4.0

  • 添加相应版本的maven公共仓库包,java项目日志可推至RabbitMQ
  • 添加RabbitMQ简单模式消费者,开启后能从RabbitMQ获取日志
  • 添加服务接口/glc/v1/log/add,接收JSON格式日志以便后续扩展
  • 添加日志仓管理功能,页面支持查看、删除等操作

版本0.3.0

  • 全面重构,不考虑旧版兼容
  • 控制索引文件数,避免大量日志时打开文件过多而崩溃
  • 降低索引文件的磁盘空间占用,优化索引创建速度
  • 检索页面,显示更友好的查询结果提示
  • glc-logback-appender的设定,可通过配置环境变量来覆盖

版本0.2.0

  • DIY了一个logo
  • 接口/glc/add添加system参数
  • 提供简洁的日志查询界面
  • 当前版设计为接收多个项目的日志,界面栏目为分类

初版0.1.0

  • 使用golang实现,就是快
  • 借助goleveldb做数据保存,结合日志写多读少特点稍加设计,真是快
  • 日志量虽大,却是真心节省内存资源
  • 常用的无条件查询最新日志,快到麻木无感
  • 关键词全文检索,支持中文分词,反向索引以空间换时间,快到麻木无感
  • 提供docker镜像支持容器化部署,方便之极
  • 提供java项目日志收集包,日志都发来发来发来
  • 服务接口/glc/add添加日志
  • 服务接口/glc/search查询日志
GNU LESSER GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/> Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. This version of the GNU Lesser General Public License incorporates the terms and conditions of version 3 of the GNU General Public License, supplemented by the additional permissions listed below. 0. Additional Definitions. As used herein, "this License" refers to version 3 of the GNU Lesser General Public License, and the "GNU GPL" refers to version 3 of the GNU General Public License. "The Library" refers to a covered work governed by this License, other than an Application or a Combined Work as defined below. An "Application" is any work that makes use of an interface provided by the Library, but which is not otherwise based on the Library. Defining a subclass of a class defined by the Library is deemed a mode of using an interface provided by the Library. A "Combined Work" is a work produced by combining or linking an Application with the Library. The particular version of the Library with which the Combined Work was made is also called the "Linked Version". The "Minimal Corresponding Source" for a Combined Work means the Corresponding Source for the Combined Work, excluding any source code for portions of the Combined Work that, considered in isolation, are based on the Application, and not on the Linked Version. The "Corresponding Application Code" for a Combined Work means the object code and/or source code for the Application, including any data and utility programs needed for reproducing the Combined Work from the Application, but excluding the System Libraries of the Combined Work. 1. Exception to Section 3 of the GNU GPL. You may convey a covered work under sections 3 and 4 of this License without being bound by section 3 of the GNU GPL. 2. Conveying Modified Versions. If you modify a copy of the Library, and, in your modifications, a facility refers to a function or data to be supplied by an Application that uses the facility (other than as an argument passed when the facility is invoked), then you may convey a copy of the modified version: a) under this License, provided that you make a good faith effort to ensure that, in the event an Application does not supply the function or data, the facility still operates, and performs whatever part of its purpose remains meaningful, or b) under the GNU GPL, with none of the additional permissions of this License applicable to that copy. 3. Object Code Incorporating Material from Library Header Files. The object code form of an Application may incorporate material from a header file that is part of the Library. You may convey such object code under terms of your choice, provided that, if the incorporated material is not limited to numerical parameters, data structure layouts and accessors, or small macros, inline functions and templates (ten or fewer lines in length), you do both of the following: a) Give prominent notice with each copy of the object code that the Library is used in it and that the Library and its use are covered by this License. b) Accompany the object code with a copy of the GNU GPL and this license document. 4. Combined Works. You may convey a Combined Work under terms of your choice that, taken together, effectively do not restrict modification of the portions of the Library contained in the Combined Work and reverse engineering for debugging such modifications, if you also do each of the following: a) Give prominent notice with each copy of the Combined Work that the Library is used in it and that the Library and its use are covered by this License. b) Accompany the Combined Work with a copy of the GNU GPL and this license document. c) For a Combined Work that displays copyright notices during execution, include the copyright notice for the Library among these notices, as well as a reference directing the user to the copies of the GNU GPL and this license document. d) Do one of the following: 0) Convey the Minimal Corresponding Source under the terms of this License, and the Corresponding Application Code in a form suitable for, and under terms that permit, the user to recombine or relink the Application with a modified version of the Linked Version to produce a modified Combined Work, in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source. 1) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (a) uses at run time a copy of the Library already present on the user's computer system, and (b) will operate properly with a modified version of the Library that is interface-compatible with the Linked Version. e) Provide Installation Information, but only if you would otherwise be required to provide such information under section 6 of the GNU GPL, and only to the extent that such information is necessary to install and execute a modified version of the Combined Work produced by recombining or relinking the Application with a modified version of the Linked Version. (If you use option 4d0, the Installation Information must accompany the Minimal Corresponding Source and Corresponding Application Code. If you use option 4d1, you must provide the Installation Information in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source.) 5. Combined Libraries. You may place library facilities that are a work based on the Library side by side in a single library together with other library facilities that are not Applications and are not covered by this License, and convey such a combined library under terms of your choice, if you do both of the following: a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities, conveyed under the terms of this License. b) Give prominent notice with the combined library that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 6. Revised Versions of the GNU Lesser General Public License. The Free Software Foundation may publish revised and/or new versions of the GNU Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Library as you received it specifies that a certain numbered version of the GNU Lesser General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that published version or of any later version published by the Free Software Foundation. If the Library as you received it does not specify a version number of the GNU Lesser General Public License, you may choose any version of the GNU Lesser General Public License ever published by the Free Software Foundation. If the Library as you received it specifies that a proxy can decide whether future versions of the GNU Lesser General Public License shall apply, that proxy's public statement of acceptance of any version is permanent authorization for you to choose that version for the Library.

简介

一个golang实现的日志中心glogcenter,简称GLC,资源占用低,性能高。作为传统ELK的替代方案,上至央企大项目下至个人本地开发,已历经众多案例磨炼,表现稳定出色,已达生产级别应用要求。 展开 收起
LGPL-3.0
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Go
1
https://gitee.com/gotoeasy/glogcenter.git
git@gitee.com:gotoeasy/glogcenter.git
gotoeasy
glogcenter
glogcenter
main

搜索帮助

14c37bed 8189591 565d56ea 8189591