Logging com .NET Core e Serilog com poucas linhas de código | iMasters
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.
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 package "Serilog.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.
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!