Home  /  simplelog


simplelog 是 golang 的高性能日志库


simplelog是go的高性能日志工具,支持日志格式化,日志按时间备份,或按大小备份,支持保留日志份数,日志文件压缩等特性.

simplelog与go-logger目前是同一实现

一般simplelog先更新,稳定后更新到go-logger

  • github.com/donnie4w/go-logger
  • github.com/donnie4w/simplelog
  • simplelog具备极高的性能和极低的内存消耗
  • 性能测试中,在常规操作下,使用格式化输出,相同长度的打印数据。 与 uber的zap日志库,和 go自带的log日志库 相比较, simplelog 在性能上和内存消耗上都占据一定优势
  • 同时也支持将需要分配内存的的功能完全去掉(使用:FORMAT_NANO),效率与内存消耗等同于直接写文件;也提供直接写文件的方法(write). 需要极限效率时,可以使用这两种方式写日志。这两种方式同样支持日志按时间,文件大小备份,支持保留日志份数,日志文件压缩

具体情况参考测试数据,与测试程序

性能测试:

测试说明

测试日志库 描述
zap "go.uber.org/zap" 高性能日志库常规格式化输出
simplelog simplelog 常规格式化输出
simplelog NoFORMAT simplelog 无格式化输出
simplelog write simplelog write方法写数据
go/ log go自带log库格式化输出


测试数据1

ns/op B/op allocs/op
zap 1822892 6876 336 6
zap 1730490 7037 336 6
simplelog 1732777 6461 296 3
simplelog 1758446 6419 296 3
simplelog NoFORMAT 2670556 4340 112 1
simplelog NoFORMAT 2694154 4192 112 1
simplelog write 2949058 4087 112 1
simplelog write 2843649 4093 112 1
go/ log 2162052 5551 296 3
go/ log 2139168 5715 296 3

Parallel 测试数据2

ns/op B/op allocs/op
zap 1000000 10572 336 6
zap 1000000 10414 337 6
simplelog 1330300 8803 296 3
simplelog 1363034 8945 296 3
simplelog NoFORMAT 2053911 7076 112 1
simplelog NoFORMAT 1677360 6888 112 1
simplelog write 1939933 6304 112 1
simplelog write 1922352 6938 112 1
go/ log 1204039 9612 296 3
go/ log 1362807 8875 296 3


Parallel 测试数据3

ns/op B/op allocs/op
zap 1000000 10331 336 6
zap 1000000 10595 337 6
simplelog 1352834 8838 296 3
simplelog 1411458 8754 296 3
simplelog NoFORMAT 2266597 5331 112 1
simplelog NoFORMAT 2090455 5631 112 1
simplelog write 2062870 5746 112 1
simplelog write 2037792 5963 112 1
go/ log 1260445 9398 280 3
go/ log 1272560 9123 280 3


Parallel 测试数据4

ns/op B/op allocs/op
zap 1000000 10230 336 6
zap 1000000 10276 337 6
simplelog 1332555 8774 296 3
simplelog 1391256 9226 296 3
simplelog NoFORMAT 2154008 5483 112 1
simplelog NoFORMAT 2115795 5853 112 1
simplelog write 2059722 6069 112 1
simplelog write 1968092 6116 112 1
go/ log 1249767 9930 280 3
go/ log 1211719 9822 280 3


打印各库输出结果(其中一行)

2023-07-10T19:58:15.138+0800    DEBUG   logtest/benchmark_test.go:82    >>>aaaaaaaaaaaaaaaaaaaaaaaaaaaaa
[DEBUG]2023/07/10 19:58:57 benchmark_test.go:94: >>>aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
[DEBUG]2023/06/10 01:25:55.028277 log_test.go:46:>>>aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
[DEBUG]2023/06/10 01:25:55.028277 log_test.go:55:>>>aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
[debug]2023/07/10 20:00:53.634554 benchmark_test.go:125: >>>aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa


测试程序

github logtest