Repolode
Cysharp

Cysharp/ZLogger

Логгер с нулевым числом аллокаций для текста и структурированных данных в .NET и Unity, построенный на Microsoft.Extensions.Logging и выводящий данные в UTF8.

Звёзды
1,790
Форки
130
Открытые issues
5
Последний коммит
3 дня назад

Что это?

ZLogger — библиотека логирования для .NET и Unity, интегрируемая с Microsoft.Extensions.Logging. Для сообщений она использует интерполяцию строк C#, а вывод записывает напрямую в UTF8 — в консоль, файлы, потоки и пользовательские обработчики. Так удаётся избежать затрат на преобразование UTF16 в UTF8, характерных для обычных логгеров, работающих со строками.

Библиотека поддерживает вывод обычного текста, структурированных данных в JSON и MessagePack, а также позволяет задавать имена параметров, сериализовать объекты в JSON и настраивать имена ключей и форматы временных меток. Встроенные провайдеры поддерживают Console, File, RollingFile, Stream и InMemory, а пакетный обработчик помогает отправлять логи по HTTP. Генератор кода для атрибута [ZLoggerMessage] создаёт методы логирования на этапе компиляции; поддержка Native AOT обеспечивается генерацией исходного кода для System.Text.Json.

ZLogger рассчитан на .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 через стандартные построители логирования.

Сценарии использования

  • Логирование большого объёма сообщений в консоль в контейнеризированных и cloud-native .NET-сервисах.
  • Запись структурированных логов в JSON-файлы или конвейеры облачного логирования.
  • Настройка быстрого файлового логирования с ротацией по дате или размеру в .NET-приложениях.
  • Логирование в проектах Unity с использованием того же API.

Быстрый старт

  1. 1

    Установите пакет NuGet ZLogger

    dotnet add package ZLogger
  2. 2

    При запуске ASP.NET Core очистите список провайдеров по умолчанию и добавьте консольный провайдер ZLogger

В подборках

Темы

#logging#dotnet#csharp#structured-logging#zero-allocation#utf8#source-generator

Частые вопросы

Что такое ZLogger?
Логгер с нулевым числом аллокаций для текста и структурированных данных в .NET и Unity, построенный на Microsoft.Extensions.Logging и выводящий данные в UTF8. ZLogger — библиотека логирования для .NET и Unity, интегрируемая с Microsoft.Extensions.Logging. Для сообщений она использует интерполяцию строк C#, а вывод записывает напрямую в UTF8 — в консоль, файлы, потоки и пользовательские обработчики. Так удаётся избежать затрат на преобразование UTF16 в UTF8, характерных для обычных логгеров, работающих со строками.
ZLogger можно использовать бесплатно? Какая у него лицензия?
ZLogger распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
ZLogger всё ещё поддерживается?
Активно поддерживается. Последний коммит в ZLogger — 4 нояб. 2026 г..
Для чего можно использовать ZLogger?
Логирование большого объёма сообщений в консоль в контейнеризированных и cloud-native .NET-сервисах. Запись структурированных логов в JSON-файлы или конвейеры облачного логирования. Настройка быстрого файлового логирования с ротацией по дате или размеру в .NET-приложениях. Логирование в проектах Unity с использованием того же API.
Как установить ZLogger?
Установите пакет NuGet ZLogger: dotnet add package ZLogger При запуске ASP.NET Core очистите список провайдеров по умолчанию и добавьте консольный провайдер ZLogger
Где скачать ZLogger?
Исходный код и инструкции по установке — на GitHub: https://github.com/Cysharp/ZLogger

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

Быстрая библиотека логирования для Go со структурированными записями, уровнями логирования и двумя API: Logger без аллокаций и более гибким SugaredLogger.

24,7 тыс.+7 за неделю1,6 тыс.GoMITАктивно поддерживаетсяОбновлён 2 месяца назад

Библиотека логирования для Python, которая заменяет настройку стандартного logging единым логгером, ротацией файлов, цветным выводом и структурированными логами.

24,2 тыс.833PythonMITАктивно поддерживаетсяОбновлён 24 часа назад

Универсальный логгер для TypeScript и JavaScript: удобный вывод в терминал, JSON с полями в начале, маскирование секретов и отсутствие runtime-зависимостей.

1,8 тыс.+1 за неделю73TypeScriptMITАктивно поддерживаетсяОбновлён 4 дня назад