Cysharp/ZLogger
面向 .NET 与 Unity 的零分配文本及结构化日志库,基于 Microsoft.Extensions.Logging 构建,直接输出 UTF8。
- Star
- 1,789
- Fork
- 130
- 未关闭 Issue
- 5
- 最近提交
- 3天前
这是什么?
ZLogger 是一个用于 .NET 和 Unity 的日志库,基于 Microsoft.Extensions.Logging 构建。它使用 C# 字符串插值作为日志消息语法,并直接以 UTF8 格式写入控制台、文件、流或自定义处理器,避免了常见字符串型日志库中 UTF16 到 UTF8 的转换开销。
它同时支持纯文本、JSON 和 MessagePack 结构化输出,可为参数命名、将对象以 JSON 形式输出,并自定义键名与时间戳格式。内置 Console、File、RollingFile、Stream 和 InMemory 等输出方式,批处理处理器可用于通过 HTTP 发送日志。[ZLoggerMessage] 特性的源生成器可生成编译期日志方法,并借助 System.Text.Json 源生成支持 Native AOT。
该库兼容 .NET Standard 2.0 及以上版本,在 .NET 8 及更高版本上性能最佳。
核心功能
- 01日志消息使用 C# 字符串插值语法,参数自动作为结构化属性记录。
- 02直接输出 UTF8 内容,减少字符串编码开销。
- 03支持纯文本、JSON 和 MessagePack 格式输出。
- 04提供 Console、File、RollingFile、Stream 和 InMemory 等输出方式。
- 05包含源生成器,可在编译期生成 ZLoggerMessage 日志方法。
- 06通过标准日志构建器与 ASP.NET Core 和 Generic Host 集成。
适用场景
- 在容器化或云原生的 .NET 服务中输出大量控制台日志。
- 将结构化 JSON 日志写入文件或云端日志管道。
- 在 .NET 应用中按日期或大小滚动写入日志文件。
- 在 Unity 项目中使用相同 API 记录日志。
快速上手
- 1
通过 NuGet 安装 ZLogger 包
dotnet add package ZLogger - 2
在 ASP.NET Core 启动代码中清除默认日志提供程序并添加 ZLogger 控制台提供程序
收录于专题
标签
常见问题
- ZLogger 是什么?
- 面向 .NET 与 Unity 的零分配文本及结构化日志库,基于 Microsoft.Extensions.Logging 构建,直接输出 UTF8。 ZLogger 是一个用于 .NET 和 Unity 的日志库,基于 Microsoft.Extensions.Logging 构建。它使用 C# 字符串插值作为日志消息语法,并直接以 UTF8 格式写入控制台、文件、流或自定义处理器,避免了常见字符串型日志库中 UTF16 到 UTF8 的转换开销。
- ZLogger 可以免费使用吗?用的什么许可证?
- ZLogger 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
- ZLogger 还在维护吗?
- 活跃维护中。ZLogger 最近一次提交是在 2026年11月4日。
- ZLogger 适合用来做什么?
- 在容器化或云原生的 .NET 服务中输出大量控制台日志。 将结构化 JSON 日志写入文件或云端日志管道。 在 .NET 应用中按日期或大小滚动写入日志文件。 在 Unity 项目中使用相同 API 记录日志。
- ZLogger 怎么安装和运行?
- 通过 NuGet 安装 ZLogger 包: dotnet add package ZLogger 在 ASP.NET Core 启动代码中清除默认日志提供程序并添加 ZLogger 控制台提供程序
- 在哪里获取 ZLogger?
- 源代码和安装说明在 GitHub 上:https://github.com/Cysharp/ZLogger
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
面向 .NET 和 Unity 的高性能、低内存分配 YAML 1.2 库,支持源码生成的序列化。
Go 语言的高性能结构化分级日志库,兼具零分配的 Logger 与更灵活的 SugaredLogger。
Python 日志库,用一个 logger 替代标准 logging 的繁琐配置,支持文件轮转、彩色输出和结构化日志。
面向 TypeScript 与 JavaScript 的通用日志库,支持美化终端输出、结构化 JSON、敏感信息脱敏,且无运行时依赖。
Go 语言的结构化日志库,与标准库 log 接口兼容,支持可插拔的格式化器和钩子,目前处于维护模式。