DEV Community

Juarez Júnior for Develop4Us

Posted on • Edited on

Logging Estruturado com Serilog

O Serilog é uma biblioteca de logging que se destaca por seu suporte a logs estruturados. Ele permite registrar logs com dados de maneira mais detalhada e organizada, facilitando a consulta e análise desses logs posteriormente. O Serilog também oferece uma integração fácil com diversas plataformas, incluindo arquivos, bancos de dados e serviços de monitoramento de logs. Neste exemplo, veremos como configurar o Serilog para gerar logs em um arquivo.

Bibliotecas:

Para usar a biblioteca Serilog, instale os seguintes pacotes NuGet no seu projeto:

Install-Package Serilog Install-Package Serilog.Sinks.File 
Enter fullscreen mode Exit fullscreen mode

Código de Exemplo:

using Serilog; using System; namespace SerilogExemplo { class Program { static void Main(string[] args) { // Configurando o Serilog para registrar logs em um arquivo Log.Logger = new LoggerConfiguration() .WriteTo.File("serilog-log.txt") .CreateLogger(); // Exemplos de logs Log.Information("A aplicação começou."); Log.Warning("Este é um aviso."); Log.Error("Um erro ocorreu no processo."); Console.WriteLine("Logs gerados. Verifique o arquivo serilog-log.txt."); // Encerrando o logger Log.CloseAndFlush(); } } } 
Enter fullscreen mode Exit fullscreen mode

Explicação do Código:

Neste exemplo, configuramos o Serilog para gravar logs em um arquivo chamado serilog-log.txt. Utilizamos o método WriteTo.File para definir o destino dos logs. Três tipos de logs são gerados: Information, Warning, e Error. Cada log é escrito no arquivo com detalhes estruturados. Por fim, utilizamos Log.CloseAndFlush() para garantir que todos os logs pendentes sejam gravados antes de encerrar a aplicação.

Conclusão:

O Serilog é uma poderosa ferramenta para quem deseja trabalhar com logs estruturados, permitindo a captura de dados mais ricos e organizados. Com sua facilidade de configuração e integração com várias plataformas, o Serilog é ideal para monitorar e depurar aplicações de forma eficiente.

Código fonte: GitHub

Top comments (0)