C#-фреймворк для CLI без зависимостей и аллокаций, совместимый с AOT и генерирующий код парсинга и маршрутизации во время компиляции.
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
Установите пакет 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 — 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 обновляется ежедневно.
Похожие проекты
Высокопроизводительная библиотека YAML 1.2 для C# с низким числом аллокаций, поддержкой .NET и Unity и сериализацией на основе генерации исходного кода.
Быстрая библиотека логирования для Go со структурированными записями, уровнями логирования и двумя API: Logger без аллокаций и более гибким SugaredLogger.
Библиотека логирования для Python, которая заменяет настройку стандартного logging единым логгером, ротацией файлов, цветным выводом и структурированными логами.
Универсальный логгер для TypeScript и JavaScript: удобный вывод в терминал, JSON с полями в начале, маскирование секретов и отсутствие runtime-зависимостей.
Структурированный логгер для Go, совместимый по API с log и поддерживающий плагины форматирования и хуки; находится в режиме поддержки.