mirror of
https://github.com/gotoeasy/glogcenter.git
synced 2025-09-15 12:58:34 +08:00
一个golang实现的日志中心glogcenter,简称GLC
| glc | ||
| .gitignore | ||
| LICENSE | ||
| README.md | ||
缘起
日志中心,一直是忍者用那传统三件套,打开速度不理想,资源占用太厉害,常闹情绪,替代品总是找不到。终于忍不住用go试写一个logcenter,结果确实是惊艳到自己了,故起名glogcenter,简称GLC,开仓建库
特点
- 使用
golang实现,就是快 - 借助
goleveldb做数据保存,结合日志写多读少特点稍加设计,就是快 - 日志量大,用内存提升性能耗不起,依靠
goleveldb做大数组,真心省内存资源 - 日志接收吞食量大,待压测后展示更多信息
- 支持全文检索,支持中文分词
- 无条件查询日志,默认查最新日志,快到麻木无感
- 单关键词查询,反向索引实现,快到麻木无感
- 多关键词查询,需要求反向索引的交集,常令人颇费脑筋,反复调整尝试,快到欢
- 支持
docker容器化部署,该有的方式 - 提供
java项目日志收集包,日志都放心发来发来发来 - 提供日志查询界面
docker运行
// 简单示例
docker run -d -p 8080:8080 gotoeasy/glc
docker启动支持的环境变量
GLC_STORE_ROOT数据存储的根目录,默认/glogcenterGLC_STORE_CHAN_LENGTH接收日志的通道长度,golang特有的概念,默认值64,基本不用修改GLC_MAX_IDLE_TIME最大闲置时间(秒),超过闲置时间将自动关闭文件,用时再自动打开,0时表示不关闭,默认180GLC_STORE_NAME_AUTO_ADD_DATE,存储名是否自动添加日期(日志量大通常按日单位区分存储),默认falseGLC_SERVER_PORTWEB服务端口,默认8080,极少有修改的必要GLC_CONTEXT_PATHWEB服务的contextPath,默认/glcGLC_ENABLE_SECURITY_KEYWEB服务是否开启API秘钥校验,默认falseGLC_HEADER_SECURITY_KEYWEB服务API秘钥的header键名,默认X-GLC-AUTHGLC_SECURITY_KEYWEB服务API秘钥,默认glogcenter
服务接口
/glc/add日志添加,表单提交方式,字段text是日志内容,name是存储名可省略/glc/search日志查询,表单提交方式,检索条件字段searchKey,更多条件字段先看代码了
使用logback的java项目,支持日志收集
<!-- pom坐标 -->
<dependency>
<groupId>top.gotoeasy</groupId>
<artifactId>glc-logback-appender</artifactId>
<version>0.1.0</version>
</dependency>
<!-- logback-spring.xml配置例子 -->
<appender name="GLC" class="top.gotoeasy.framework.glc.logback.appender.GlcHttpAppender">
<glcApiUrl>http://127.0.0.1:8080/glc/add</glcApiUrl>
<glcApiKey>X-GLC-AUTH:glogcenter</glcApiKey>
<layout>
<pattern><![CDATA[ %d %c %t %p %m %n]]></pattern>
</layout>
</appender>
TODO
- 还好多
更新履历
初版0.1.0,latest
- 使用
golang实现,就是快 - 借助
goleveldb做数据保存及查询辅助 - 真心省内存资源
- 日志接收吞食量大
- 支持全文检索,支持中文分词
- 支持多关键词查询交集
- 支持
docker容器化部署 - 提供
java项目日志收集包 - 服务接口
/glc/add添加日志 - 服务接口
/glc/search查询日志