当前位置: 首页 > news >正文

介绍一个使用 Go 语言开发的高性能可配置可扩展的日志库 logit

这是一个使用 Go 语言开发的高性能可配置可扩展的日志库,名字叫 logit。

logit 是一个高性能的日志库,从测试结果来看,比主流日志库 zap、logrus 这些要快不少

logit 支持配置文件,所有配置都可以使用配置文件进行配置。

logit 支持自定义日志处理逻辑,只需要简单实现一个 Handler 接口,即可添加进 logger 中进行日志处理,对于日志采集、日志处理都是非常方便的。

logit 支持按照时间和文件大小自动分割日志文件,并支持日志级别划分不同的日志文件,比如 error 级别的日志输出到专门的 error 日志文件中。

大家可以看 B站上的介绍视频,对整个日志库的设计会有更清楚的了解。

源码地址

logit 源码发布在 Github码云 两个仓库上,国内想要访问速度比较快就使用 码云

Github: https://github.com/go-logit/logit

码云: https://gitee.com/go-logit/logit

由于仓库进行过转移,从我的个人账户迁移到了 go-logit 的组织账户,所以访问地址需要同步更改,也推荐使用最新版的 logit。这是一个艰难的决定,但也是一个好的开始,组织的引入可以更好地进行发展,也有利于形成社区 : )

使用案例

参考源码中附带的所有使用案例:

Github: https://github.com/go-logit/logit/tree/master/_examples

码云: https://gitee.com/go-logit/logit/tree/master/_examples

性能测试:

测试10 秒内运行次数 (越大越好)消耗时间 / 操作 (越小越好)消耗内存 / 操作 (越小越好)分配内存 / 操作 (越小越好)
logit64299071855 ns/op384 B/op8 allocs/op
golog33614833589 ns/op712 B/op24 allocs/op
zap29711194066 ns/op448 B/op16 allocs/op
logrus15534197869 ns/op1633 B/op52 allocs/op

测试环境:I7-6700HQ CPU @ 2.6 GHZ,16 GB RAM

注意:

1. 输出文件信息会有运行时操作(runtime.Caller 方法),非常影响性能,
但是这个功能感觉还是比较实用的,尤其是在查找错误的时候,所以我们还是加了这个功能!
如果你更在乎性能,那我们也提供了一个选项可以关闭文件信息的查询!

2. v0.0.7 及以前版本的日志输出使用了 fmt 包的一些方法,经过性能检测发现这些方法存在大量使用反射的
行为,主要体现在对参数 v interface{} 进行类型检测的逻辑上,而日志输出都是字符串,这一个
判断是可以省略的,可以减少很多运行时操作时间!v0.0.8 版本开始使用了更有效率的输出方式!

3. 经过对 v0.0.8 版本的性能检测,发现时间格式化操作消耗了接近一半的处理时间,
主要体现在 time.Time.AppendFormat 的调用上。在 v0.0.11 版本中使用了时间缓存机制进行优化,
目前存在一个疑惑就是使用并发竞争去换取时间格式化的性能消耗究竟值不值得?
答案是不值得,我们在 v0.1.1-alpha 及更高版本中取消了这个时间缓存机制。


http://www.taodudu.cc/news/show-6309510.html

相关文章:

  • 【physx/wasm】在physx中添加自定义接口并重新编译wasm
  • excel---常用操作
  • Lora训练Windows[笔记]
  • linux基础指令讲解(ls、pwd、cd、touch、mkdir)
  • InnoDB 事务处理机制
  • 启明云端ESP32 C3 模组WT32C3通过 MQTT 连接 AWS
  • 机器学习:python常用可视化技巧
  • 学习C++该看什么书?
  • 学习c/c++ 推荐学习什么书籍?
  • C语言学习经典书籍推荐
  • Nginx安装和配置
  • 安装nginx配置
  • Liunx下Nginx安装配置
  • nginx安装配置 linux
  • Nginx 的安装配置
  • 安装 配置 Nginx
  • nginx 安装,配置
  • nginx安装配置(图文教程)
  • nginx安装配置、Nginx支持php
  • 虚拟机的Nginx安装配置
  • Linux Nginx安装配置及HTTPS配置
  • nginx安装配置记录
  • Nginx安装配置及使用方法
  • windows2008 没有本地用户和组
  • 计算机管理没有本地用户和组控制面板,win10管理没有本地用户和组怎么办_win10电脑管理没有本地用户和组解决方法...
  • 2003server计算机管理里面没有本地用户和组
  • win11本地用户和组找不到的解决办法
  • vue移动端手机号正则表达式
  • JavaScript实现11位手机号码正则表达式
  • SQL 数据初级查询—实验报告
  • SQL 使用记录
  • 微软sql服务器可以关闭吗,停止Microsoft SQL server的几种方式
  • SQL Server简介
  • datastage(IBM InfoSphere Information Server )日志的获取和分析
  • 自定义datastage阶段
  • DataStage 简介