Použití Microsoft.Extensions.Logging přes předchozí systém protokolování MVVMCROSS nabízí několik výhod:
1. Flexibilita a rozšiřitelnost: Microsoft.Extensions.Logging poskytuje abstrakční vrstvu, která umožňuje vývojářům používat různé poskytovatele protokolování, jako jsou serilog, nlog nebo log4Net. Tato flexibilita znamená, že rámec protokolování lze snadno vyměnit v závislosti na potřebách projektu, aniž by se změnila podkladový kód. Naproti tomu předchozí systém MVVMCrossu byl přísnější a vyžadoval specifické implementace pro různé poskytovatele [1] [2].
2. Podpora injekce závislosti: Microsoft.Extensions.Logging se dobře integruje do rámců vstřikování závislosti, což usnadňuje vstřikování loggerů do tříd. To je zvláště užitečné pro testování jednotek, protože umožňuje vytvoření falešných loggerů ověřit chování protokolování [7]. MVVMCross také podporuje injekci závislosti na protokolování, ale pomocí Microsoft.Extensions.Logging poskytuje standardizovaný přístup v různých rámcích [2].
3. stabilita a podpora komunity: Microsoft.Extensions.Logging je široce přijato a stabilní API, podporované společností Microsoft a širší komunitou .NET. Tato stabilita zajišťuje, že bude i nadále udržována a aktualizována, což poskytuje dlouhodobou spolehlivost projektů [2] [9].
4. Zjednodušená konfigurace: S Microsoft.Extensions.Logging lze konfiguraci spravovat prostřednictvím AppSettings.json nebo jiných konfiguračních souborů, což zjednodušuje proces nastavení ve srovnání s některými jinými protokolovacími rámcemi. To je obzvláště výhodné při používání poskytovatelů jako Serilog nebo Nlog, které lze nakonfigurovat pomocí JSON [7].
5. Vyhýbání se uzamčení dodavatele: pomocí abstrakční vrstvy, jako je Microsoft.Extensions.Logging, se vývojáři vyhýbají vázání jejich kódu na konkrétní protokolování rámce. To usnadňuje přepínání mezi různými poskytovateli protokolování bez významných změn kódu, snižování uzamčení dodavatele a zvyšování flexibility projektu [9].
6. Škálovatelnost a výkon: Microsoft.Extensions.logging je navržen tak, aby efektivně zvládl vysoce výkonné scénáře protokolování. Podporuje asynchronní protokolování a může být optimalizována pro různá prostředí, takže je vhodná pro rozsáhlé aplikace [9].
Stručně řečeno, Microsoft.Extensions.Logging nabízí flexibilní, škálovatelné a široce podporované řešení protokolování, které se dobře integruje s injekcí závislosti a různými poskytovateli protokolování, což z něj činí vynikající volbu oproti předchozímu systému protokolování MVVMCROSS pro mnoho scénářů vývoje.
Citace:[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-static-Members-with-microsoft-logging
[4] https://learn.microsoft.com/en-us/ef/core/logging-events-diagnostics/extensions-logging
[5] https://www.mvvmcross.com/documentation/upgrading/upgrade-to-mvvmcross-60
[6] https://stackoverflow.com/questions/42356802/how-does-microsoft-extensions-work-for-full-net-framework
[7] https://stackoverflow.com/questions/58209076/microsoft-extensions-logging-vs-nllog
[8] https://stackoverflow.com/questions/68075159/mvvm-cross-logging-setup-třídy
[9] https://blog.stephencleary.com/2018/05/Microsoft-extensions-part-1-nintroduction.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