Entendendo a distinção: registro em log vs. monitoramento em sistemas .Net Core
O que é Logging?
O log no software refere-se ao processo de captura de eventos em tempo real, acompanhado de detalhes adicionais, como informações de infraestrutura e tempo de execução. Ele desempenha um papel crucial em qualquer aplicativo de software, particularmente ao solucionar problemas. Os logs ajudam a entender falhas, identificar gargalos de desempenho e facilitar a resolução de problemas.
Normalmente, os logs são armazenados em bancos de dados, consoles ou arquivos, com base na gravidade e conveniência do aplicativo. Embora seja possível gravar vários dados em logs, as entradas comuns incluem mensagens informativas e mensagens de erro. As mensagens informativas documentam eventos padrão, como chamadas de método, autenticação de usuário ou check-outs de produtos, enquanto as mensagens de erro fornecem dados abrangentes para depuração.
O ASP.NET Core por exemplo, simplifica o registro em log fornecendo uma interface de log genérica que é consistente entre a estrutura e bibliotecas de terceiros. Essa uniformidade facilita a navegação de logs e o diagnóstico de problemas. A estrutura permite que os usuários configurem o detalhamento do log e direcionem os logs para diferentes destinos, como arquivos, consoles ou bancos de dados.
No ASP.NET Core, os provedores de log são responsáveis por armazenar logs e os usuários podem configurar vários provedores para seus aplicativos. A configuração padrão do ASP.NET Core inclui provedores de log como Console, Debug, EventSource e EventLog (específicos do Windows).
O ASP.NET Core possui diversos recursos úteis para acompanhar o que acontece em seus aplicativos, conhecidos como logging. O registro em log envolve o registro de informações detalhadas sobre vários eventos e processos, como ações do usuário, eventos do sistema e métricas de desempenho. Essas informações geralmente são armazenadas em um arquivo de log ou banco de dados, ajudando você a identificar e corrigir problemas, melhorar o desempenho e entender como o software é usado.
O monitoramento, por outro lado, consiste em observar e medir o desempenho do seu aplicativo em tempo real. Ele pode enviar alertas ou notificações quando determinadas condições são atendidas, como quando o aplicativo demora muito para responder ou encontra um erro. O monitoramento ajuda a detectar e corrigir problemas antes que eles afetem os usuários e fornece informações valiosas para otimizar o desempenho.
No ASP.NET Core, existem ferramentas populares como Microsoft.Extensions.Logging, NLog e Serilog que auxiliam no registro em log. Essas ferramentas facilitam o gerenciamento e a análise das informações geradas pelo aplicativo, ajudando você a manter um sistema de software saudável e eficiente.
No .NET Core, o registro em log é uma maneira de acompanhar o que está acontecendo em seu aplicativo. Ele ajuda você a monitorar seu comportamento, localizar e corrigir problemas e entender como ele está se saindo. A API ILogger é usada para registro em log eficiente e estruturado. Diferentes provedores de log permitem que você armazene logs em vários lugares, e há opções internas e de terceiros.
Os seis níveis de log principais no .NET
• Critical (Crítico): isso ocorre para problemas sérios que podem fazer com que seu aplicativo pare de funcionar, como ficar sem memória ou espaço no disco.
• Error (Erro): Use isso quando algo der errado, como um erro de banco de dados impedindo que os dados sejam salvos. O aplicativo ainda pode funcionar para outras coisas, apesar de encontrar erros.
• Warning (Aviso): Não é tão grave quanto os erros, mas indica um problema potencial que pode levar a erros mais graves.
• Information (Informações): Fornece detalhes sobre o que está acontecendo no aplicativo. Útil para entender as etapas que levam a um erro.
• Debug: Útil durante o desenvolvimento para rastrear informações detalhadas. Ele normalmente não é usado em um ambiente de produção/ao vivo.
• Trace (Rastreamento): como Depurar, mas pode incluir informações confidenciais. Raramente usado e não utilizado por bibliotecas de framework.
Agora, sobre a diferença entre registro (logging) e rastreamento (tracing). O registro em log se concentra no registro de eventos significativos em seu aplicativo, fornecendo uma espécie de resumo. Por outro lado, o rastreamento vai mais fundo, dando-lhe uma visão mais detalhada de tudo o que acontece em seu aplicativo, oferecendo um registro completo de suas atividades. Pense nos logs como registros organizados de momentos importantes, enquanto os rastreamentos fornecem uma visão abrangente de toda a operação do seu aplicativo.
BIBLIOGRAFIA
https://learn.microsoft.com/en-us/dotnet/core/diagnostics/logging-tracing