GitHub 开源项目 rs/zerolog 介绍,Zero Allocation JSON Logger

大家好,又见面了,我是 GitHub 精选君!

背景介绍

今天要给大家推荐一个 GitHub 开源项目 rs/zerolog,该项目在 GitHub 有超过 10.7k Star。

一句话介绍该项目:Zero Allocation JSON Logger

Go Coverage

Pretty Logging Image

项目介绍

背景介绍

在当今信息爆炸的时代,日志记录变得尤为重要,无论是用于程序调试、状态监控还是安全审计。然而,大多数日志库要么运行效率低下、要么功能使用复杂,甚至在记录日志时导致大量的内存分配,进而影响应用程序的性能。尤其是在需要高性能和高可用性的生产环境下,这些问题成了开发者的一大痛点。

###

项目介绍

zerolog 是一款高性能的 JSON 日志库,专为解决上述问题而设计。zerolog 不仅提供了直观简单的 API,还具备出色的性能,其中最显著的特点就是几乎零内存分配(Zero Allocation),这使得它在记录日志时对程序性能的影响降到最低。zerolog 支持结构化日志记录,方便日志信息的检索与分析,并提供多种级别的日志输出,满足不同场景下的需求。此外,它还支持日志抽样、钩子(Hooks)、上下文日志记录等高级功能,以及与 net/http 的集成,便于在 Web 服务中使用。

如何使用

安装 zerolog 很简单,只需执行以下命令:

go get -u github.com/rs/zerolog/log

下面是一些基本的使用示例:

基础日志记录示例:

package main

import (
    "github.com/rs/zerolog"
    "github.com/rs/zerolog/log"
)

func main() {
    zerolog.TimeFieldFormat = zerolog.TimeFormatUnix

    log.Print("hello world")
}

带上下文信息的日志记录:

package main

import (
    "github.com/rs/zerolog"
    "github.com/rs/zerolog/log"
)

func main() {
    zerolog.TimeFieldFormat = zerolog.TimeFormatUnix

    log.Debug().
        Str("Scale", "833 cents").
        Float64("Interval", 833.09).
        Msg("Fibonacci is everywhere")
    
    log.Debug().
        Str("Name", "Tom").
        Send()
}

设置全局日志级别:

package main

import (
    "flag"
    "github.com/rs/zerolog"
    "github.com/rs/zerolog/log"
)

func main() {
    zerolog.TimeFieldFormat = zerolog.TimeFormatUnix
    debug := flag.Bool("debug", false, "sets log level to debug")
    flag.Parse()

    if *debug {
        zerolog.SetGlobalLevel(zerolog.DebugLevel)
    } else {
        zerolog.SetGlobalLevel(zerolog.InfoLevel)
    }

    log.Debug().Msg("This message appears only when log level set to Debug")
    log.Info().Msg("This message appears when log level set to Debug or Info")
}

项目推介

zerolog 已经被包括 Uber 在内的多个知名项目和公司采用,它以其卓越的性能和简洁的 API 赢得了社区的高度评价。这个项目不仅活跃且持续维护,还由一位知名的开发者管理,保证了项目品质和未来的可持续发展。不管是小型应用还是大型企业级服务,使用 zerolog 都能极大地提高日志记录的效率与可用性,是目前最值得推荐的日志记录解决方案之一。

以下是该项目 Star 趋势图(代表项目的活跃程度):

更多项目详情请查看如下链接。

开源项目地址:https://github.com/rs/zerolog

开源项目作者:rs

开源协议:MIT License

以下是参与项目建设的所有成员:

关注我们,一起探索有意思的开源项目。


更多精彩请扫码关注如下公众号。

Written on December 11, 2024