Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Quais são os benefícios de usar Microsoft.Extensions.Logging sobre o sistema de registro anterior da MVVMcross


Quais são os benefícios de usar Microsoft.Extensions.Logging sobre o sistema de registro anterior da MVVMcross


Usando Microsoft.Extensions.Logging sobre o sistema de registro anterior da MVVMCROSS oferece vários benefícios:

1. Flexibilidade e extensibilidade: Microsoft.Extensions.Logging fornece uma camada de abstração que permite aos desenvolvedores usar vários provedores de registro, como Serilog, Nlog ou log4net. Essa flexibilidade significa que a estrutura de registro pode ser facilmente trocada, dependendo das necessidades do projeto, sem alterar o código subjacente. Por outro lado, o sistema anterior da MVVMcross era mais rígido e exigia implementações específicas para diferentes fornecedores [1] [2].

2. Suporte à injeção de dependência: Microsoft.Extensions.Logging integra -se bem às estruturas de injeção de dependência, facilitando a injeção de loggers nas classes. Isso é particularmente útil para testes de unidade, pois permite a criação de moggers simulados para verificar o comportamento de registro [7]. O MVVMCROSS também suporta injeção de dependência para registro, mas o uso do Microsoft.Extensions.Logging fornece uma abordagem mais padronizada em diferentes estruturas [2].

3. Estabilidade e suporte da comunidade: Microsoft.Extensions.Logging é uma API amplamente adotada e estável, apoiada pela Microsoft e pela comunidade .NET mais ampla. Essa estabilidade garante que ele continue sendo mantido e atualizado, fornecendo confiabilidade a longo prazo para projetos [2] [9].

4. Configuração simplificada: com Microsoft.Extensions.Logging, a configuração pode ser gerenciada através de AppSsettings.json ou outros arquivos de configuração, que simplifica o processo de configuração em comparação com algumas outras estruturas de registro. Isso é especialmente benéfico ao usar fornecedores como Serilog ou Nlog, que podem ser configurados usando o JSON [7].

5. Evitar o bloqueio do fornecedor: Usando uma camada de abstração como o Microsoft.Extensions.Logging, os desenvolvedores evitam vincular seu código a uma estrutura de registro específica. Isso facilita a alternância entre diferentes provedores de registro sem alterações significativas de código, reduzindo o bloqueio do fornecedor e aumentando a flexibilidade do projeto [9].

6. Escalabilidade e desempenho: Microsoft.Extensions.Logging foi projetado para lidar com cenários de registro de alto desempenho com eficiência. Ele suporta o registro assíncrono e pode ser otimizado para diferentes ambientes, tornando-o adequado para aplicações em larga escala [9].

Em resumo, o Microsoft.Extensions.Logging oferece uma solução de registro flexível, escalável e amplamente suportada que se integra bem à injeção de dependência e a vários provedores de madeira, tornando -o uma escolha superior sobre o sistema de registro anterior da MVVMcross para muitos cenários de desenvolvimento.

Citações:
[1] https://developer.vonage.com/en/blog/adaptive-library-logging-with-microsoft-extensions-logging-dr
[2] https://www.mvvmcross.com/documentation/fundamentals/logging-new
[3] https://stackoverflow.com/questions/46483019/logging-from-tatic-members-with-microsoft-extensions-logging
[4] https://learn.microsoft.com/en-us/ef/core/logging-events-diagnostics/extensions-logging
[5] https://www.mvvmcross.com/documentation/upgrining/upgrade-to-mvvmcross-60
[6] https://stackoverflow.com/questions/42356802/how-does-microsoft-extensions-logging--for-full-net-framework
[7] https://stackoverflow.com/questions/58209076/microsoft-extensions-logging-vs-nlog
[8] https://stackoverflow.com/questions/68075159/mvvm-cross-logging-setup-class
[9] https://blog.stephencleary.com/2018/05/microsoft-extensions-logging-part--introduction.html
[10] https://www.mvvmcross.com/documentation/fundamentals/viewmodel-lifecycle
[11] https://www.reddit.com/r/dotnet/comments/142fs0y/serilog_vs_microsoft_logger_ilogger/
[12] https://github.com/mvvmcross/mvvmcross/issues/2936