Um framework C# para CLI sem dependências e sem alocações, seguro para AOT, que gera código de parsing e roteamento em tempo de compilação por meio de um Source Generator.
Cysharp/ZLogger
Logger de texto e estruturado com zero alocações para .NET e Unity, baseado em Microsoft.Extensions.Logging e com saída UTF8.
- Estrelas
- 1,789
- Forks
- 130
- Issues abertas
- 5
- Último commit
- há 3 dias
O que é?
ZLogger é uma biblioteca de logging para .NET e Unity que se integra ao Microsoft.Extensions.Logging. Ela usa interpolação de strings do C# como sintaxe para mensagens de log e grava a saída diretamente em UTF8 em consoles, arquivos, streams e processadores personalizados, evitando o custo da conversão de UTF16 para UTF8 presente em loggers que usam strings.
A biblioteca oferece saída em texto simples e nos formatos estruturados JSON ou MessagePack, com opções para nomear parâmetros, serializar objetos como JSON e personalizar nomes de chaves e formatos de timestamp. Os providers integrados incluem Console, File, RollingFile, Stream e InMemory, e um processador em lote facilita o envio de logs por HTTP. Um source generator para o atributo [ZLoggerMessage] gera métodos de log em tempo de compilação, com suporte a Native AOT por meio da geração de código-fonte do System.Text.Json.
ZLogger tem como alvo o .NET Standard 2.0 e versões posteriores, com melhor desempenho no .NET 8 ou superior.
Recursos principais
- 01Usa interpolação de strings do C# para mensagens de log, capturando parâmetros como propriedades estruturadas.
- 02Grava a saída diretamente em UTF8, evitando o custo adicional de codificação de strings.
- 03Oferece formatadores para texto simples, JSON e MessagePack.
- 04Disponibiliza providers de saída Console, File, RollingFile, Stream e InMemory.
- 05Inclui um source generator para gerar métodos de log ZLoggerMessage em tempo de compilação.
- 06Integra-se ao ASP.NET Core e ao Generic Host por meio dos builders padrão de logging.
Casos de uso
- Registrar grandes volumes de saída no console em serviços .NET conteinerizados ou cloud-native.
- Gravar logs estruturados em JSON em arquivos ou pipelines de logging na nuvem.
- Adicionar logging rápido em arquivos, com rotação por data ou tamanho, a aplicações .NET.
- Fazer logging em projetos Unity usando a mesma API.
Início rápido
- 1
Instale o pacote NuGet do ZLogger
dotnet add package ZLogger - 2
Na inicialização do ASP.NET Core, limpe os provedores padrão e adicione o provedor de console do ZLogger
Em coleções
Tópicos
Perguntas frequentes
- O que é ZLogger?
- Logger de texto e estruturado com zero alocações para .NET e Unity, baseado em Microsoft.Extensions.Logging e com saída UTF8. ZLogger é uma biblioteca de logging para .NET e Unity que se integra ao Microsoft.Extensions.Logging. Ela usa interpolação de strings do C# como sintaxe para mensagens de log e grava a saída diretamente em UTF8 em consoles, arquivos, streams e processadores personalizados, evitando o custo da conversão de UTF16 para UTF8 presente em loggers que usam strings.
- ZLogger é gratuito? Qual é a licença?
- ZLogger é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
- ZLogger ainda é mantido?
- Manutenção ativa. O último commit de ZLogger foi em 4 de nov. de 2026.
- Para que posso usar ZLogger?
- Registrar grandes volumes de saída no console em serviços .NET conteinerizados ou cloud-native. Gravar logs estruturados em JSON em arquivos ou pipelines de logging na nuvem. Adicionar logging rápido em arquivos, com rotação por data ou tamanho, a aplicações .NET. Fazer logging em projetos Unity usando a mesma API.
- Como instalar ZLogger?
- Instale o pacote NuGet do ZLogger: dotnet add package ZLogger Na inicialização do ASP.NET Core, limpe os provedores padrão e adicione o provedor de console do ZLogger
- Onde consigo ZLogger?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/Cysharp/ZLogger
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Uma biblioteca YAML 1.2 de alto desempenho e baixa alocação para C# com foco em .NET e Unity, com serialização gerada pelo source generator.
Uma biblioteca de logging rápida, estruturada e com níveis para Go, com uma API Logger sem alocações e uma API SugaredLogger mais flexível.
Biblioteca de logging para Python que substitui a configuração padrão por um único logger, rotação de arquivos, saída colorida e logs estruturados.
Logger universal para TypeScript e JavaScript, com saída de terminal formatada, JSON estruturado com campos primeiro, mascaramento de segredos e nenhuma dependência em tempo de execução.
Logger estruturado e compatível com a API de Go, com formatadores e hooks extensíveis; atualmente em modo de manutenção.