Novidades do .NET 6: HTTP Logging no ASP.NET Core

Renato Groffe
4 min readMay 27, 2021

--

Nesta semana (dias 25 a 27/Maio, terça a quinta) está acontecendo a edição 2021 do Microsoft Build, a conferência anual da Microsoft para Desenvolvedores. Como não poderia deixar de ser, aconteceram novamente diversos anúncios envolvendo tecnologias que integram a plataforma .NET.

Um dos destaques foi o lançamento do Preview 4 do .NET 6, com detalhes das novidades podendo ser encontrados nas seguintes postagens nos blogs oficiais do .NET e do ASP.NET:

O .NET 6 foi inclusive tema de vários artigos que já produzi anteriormente neste blog. Caso queira saber mais a respeito ou deseje rever algum conteúdo, acesse os links a seguir:

Novidades do .NET 6: suporte a Hot Reload no ASP.NET Core

Novidades do .NET 6: melhorando a experiência na linha de comando com Response Files

.NET 6: primeiros testes

Uma das novidades que o Preview 4 traz para o ASP.NET Core é o middleware HTTP Logging: esta nova opção possibilita registrar logs com detalhes de requisições HTTP recebidas e respostas geradas por uma aplicação Web.

Trata-se sem dúvidas de um recurso bastante útil para testes em ambiente de Desenvolvimento, porém existem ressalvas importantes acerca do mesmo em outros cenários:

  • A utilização de HTTP Logging tende a diminuir a performance de uma aplicação devido às várias atividades relacionadas à manipulação de logs;
  • Dados pessoais de identificação podem estar presente nos logs, devendo-se aqui considerar os riscos envolvendo prováveis informações sensíveis.

Esses são fatos que a própria Microsoft alerta na documentação da funcionalidade:

E como estou abordando aqui novidades do Microsoft Build 2021, aproveito este espaço para um convite…

No dia 02/06/2021 (quarta) às 21:00 horário de Brasília — teremos mais um evento online e gratuito no canal Coding Night.

Desta vez uma mesa redonda discutindo as novidades e os grandes anúncios do Build 2021. Um bate papo cobrindo tecnologias como .NET, C#, ASP.NET Core, MAUI, Visual Studio, Visual Studio Code, e Microsoft Azure!

Para participar faça sua inscrição no link a seguir, a transmissão acontecerá via YouTube:

https://bit.ly/novidades-build-2021

Mas, afinal de contas, como ativamos este novo recurso?

Considerando uma API REST para contagem de acessos/requisições e que produz as seguintes saídas para o console:

Clique nesta imagem para visualizar com uma melhor resolução

Será necessário alterar o arquivo appsettings.json, incluindo em Logging > LogLevel o valor Information para o namespace Microsoft.AspNetCore.HttpLogging (linha 7):

E adicionar uma chamada ao método UseHttpLogging em Configure na classe Startup (linha 30 no próximo exemplo):

Na imagem a seguir podemos observar detalhes dos logs de requisições e respostas, os quais foram gerados durante o processamento de solicitações recebidas pela API de exemplo:

Clique nesta imagem para visualizar com uma melhor resolução

Podemos ir além, controlando o que deverá ou não ser registrado como log. Acionar para isto na classe Startup o método AddHttpLogging em ConfigureServices:

  • Através de uma instância da classe HttpLoggingOptions (namespace Microsoft.AspNetCore.HttpLogging) se definem as opções que determinarão a forma como os logs serão produzidos;
  • No exemplo a seguir o valor associado à propriedade LoggingFields fará com que apenas os códigos HTTP das respostas sejam logados.

A próxima imagem traz o resultado deste último ajuste:

Clique nesta imagem para visualizar com uma melhor resolução

Já disponibilizei os fontes deste exemplo no GitHub:

https://github.com/renatogroffe/ASPNETCore6-Preview4-HttpLogging-REST_API-ContagemAcessos

--

--

Renato Groffe
Renato Groffe

Written by Renato Groffe

Microsoft Most Valuable Professional (MVP), Multi-Plataform Technical Audience Contributor (MTAC), Software Engineer, Technical Writer and Speaker

No responses yet