百科.dev
全部条目在线工具AI 编程趋势榜开源项目技术资讯提交条目
登录
< 返回工具列表
Z

ZLogger

> 编程语言
开源

基于 Microsoft.Extensions.Logging 的 .NET 版零分配文本/结构化日志记录器,具有字符串插值和源生成器。

1.7K stars0 点赞1 次浏览
访问官网GitHub

工具介绍

基于 Microsoft.Extensions.Logging 的 .NET 版零分配文本/结构化日志记录器,具有字符串插值和源生成器。

ZLogger 是一个用于 .NET 和 Unity 的零分配文本/结构化日志记录器,具有字符串插值和源生成器,基于 Microsoft.Extensions.Logging。 日志输出的常见目标是 Console(Stream), File(Stream), Network(Stream), 所有都是以 UTF8 格式。 然而,由于典型的日志记录架构基于字符串(UTF16),这需要额外的编码成本。 在 ZLogger 中,我们利用了 C# 10 的字符串插值改进,并通过利用 .NET 8 的 IUtf8SpanFormattable,我们成功避免了值的装箱,并通过始终直接以 UTF8 格式输出来保持高性能。

ZLogger 直接基于 Microsoft.Extensions.Logging 构建。Microsoft.Extensions.Logging 是一种官方的日志抽象,在许多框架中都有使用,例如 ASP.NET Core 和 Generic Host。然而,由于常规日志记录器有自己的系统,需要一个桥梁来连接这些系统,因此会产生大量的开销。ZLogger 取消了对这种桥梁的需求,从而完全避免了开销。

此基准测试是写入文件,但典型日志记录器的默认设置速度非常慢。这是因为它们每次写入后都会刷新。在基准测试中,为确保公平性,我们特别注意在每个日志记录器中设置选项,以实现最大速度。ZLogger 采用默认设置即可实现最快速度,因此无需担心任何设置。

此默认设置的速度较慢,原因是 I/O 速度较慢,因此可以通过使用更快的驱动器来缓解此问题。在进行基准测试时,请注意,结果不仅在本地(可能速度很快)上,而且在连接到云端的驱动器以及 Docker 等环境中也会有很大差异。异步缓冲设置的一个优点是,它可以减少此类 I/O 问题的影响。ZLogger 专注于 C# 的新语法,并完全采用了插值字符串。这使得提供参数化的代码变得更加容易。

Issues· 0 开放

查看全部 Issues在 GitHub 打开

暂无开放 Issues,或尚未同步最近议题。

> 标签

C#

暂无评论,来聊聊你的看法吧

> 工具信息

发布日期2026年8月1日
最后更新2026年9月17日
分类编程语言
定价开源

> 相关工具

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言