.NET

18 dez, 2019

Logging com .NET Core e Serilog com poucas linhas de código

Publicidade

Se você está precisando de uma forma fácil e rápida para implementar um log da sua aplicação .NET Core, o Serilog é uma boa opção!

Por que Serilog?

Assim como várias outras libraries para .NET, o Serilog provê uma forma rápida, fácil e eficiente de logging em arquivos textos, console e mais. A sua configuração é bem simples e portável para as mais recentes plataformas .NET.

Como configurar?

Por ser tratar de um exemplo, criarei uma aplicação .NET Core 3.0 Web API.

Em seguida selecione o tipo de projeto “API”:

O primeiro passo é instalar a packageSerilog.Extensions.Logging.File”, para isso, abra o Package Manager Console do Visual Studio (no exemplo estou usando a versão 2019) e digite “install-package Serilog.Extensions.Logging.File”:

Feito a instalação da package, precisaremos agora injetar a interface “ILoggerFactory” no método “Configure” do arquivo Startup.cs do projeto criado.

Em seguida, usaremos o método “AddFile” do loggerFactory para especificar o caminho físico de onde o arquivo de log vai residir. Nesse exemplo, será criada uma pasta “Logs” dentro da raíz do projeto, e um arquivo texto chamado “minha-app-DataAtual.txt”. Repare que o log é incremental, sendo gerado um por dia com a data atual do servidor.

Esse projeto exemplo contempla uma API com um método GET para exibir dados de clima. Ao executar a API, os dados do JSON são exibidos com sucesso.


Como próximo passo, certifique-se de injetar a interface ILogger também no controller, e nesse exemplo, forçaremos uma exceção por divisão por zero.

No catch, vamos interceptar a exceção e usar o método “LogInformation” para enviar o erro ao arquivo texto.

Agora na pasta raíz do projeto, será criada uma sub-pasta com o mesmo nome que configuramos no projeto — “Logs”.

E um arquivo também gerado, conforme também configuramos no projeto:

E finalmente o conteúdo que foi gravado contendo o log de erro.

Conclusão:

Por se tratar de um arquivo texto, considere o fato de estar sempre acessando o disco para escrever no arquivo, em cenários onde I/O é uma preocupação constante, talvez outras alternativas sejam mais eficazes para fazer logging do seu sistema. Porém, para muitos cenários o Serilog pode ser muito eficaz. Avalie com cuidado o seu cenário e tome sua decisão!

Mais detalhes no site oficial: https://serilog.net/