Používanie Microsoft.extensions.Logging Over predchádzajúci systém protokolovania MVVMCross ponúka niekoľko výhod:
1. Flexibilita a rozšírenie: Microsoft.extensions.Logging poskytuje abstrakciu vrstvu, ktorá umožňuje vývojárom používať rôznych poskytovateľov protokolovania, ako sú Serilog, NLOG alebo Log4Net. Táto flexibilita znamená, že rámec protokolovania sa dá ľahko vymeniť v závislosti od potrieb projektu bez zmeny základného kódu. Naopak, predchádzajúci systém MVVMCross bol rigidnejší a vyžadovaný konkrétny implementácia pre rôznych poskytovateľov [1] [2].
2. Podpora vstrekovania závislosti: Microsoft.extensions.Logging sa dobre integruje do rámcov vstrekovania závislosti, čo uľahčuje vloženie záznamníkov do tried. Toto je užitočné najmä pre testovanie jednotiek, pretože umožňuje vytvorenie falošných protokolov na overenie správania protokolovania [7]. MVVMCross tiež podporuje injekciu závislosti na protokolovaní, ale pomocou Microsoft.extensions.Logging poskytuje štandardizovanejší prístup v rôznych rámcoch [2].
3. Stabilita a podpora komunity: Microsoft.extensions.Logging je široko prijaté a stabilné API, ktoré podporuje Microsoft a širšia komunita .NET. Táto stabilita zaisťuje, že bude naďalej udržiavaná a aktualizovaná a poskytuje dlhodobú spoľahlivosť pre projekty [2] [9].
4. Zjednodušená konfigurácia: S Microsoft.extensions.Logging je možné konfiguráciu spravovať prostredníctvom Appsettings.json alebo iných konfiguračných súborov, ktoré zjednodušujú proces nastavenia v porovnaní s niektorými inými protokolovými rámcami. Toto je obzvlášť prospešné pri používaní poskytovateľov ako Serilog alebo NLOG, ktoré je možné nakonfigurovať pomocou JSON [7].
5. Vyhýbanie sa blokovaniu dodávateľa: Použitím abstrakčnej vrstvy, ako je Microsoft.Extensions.Logging, vývojári vyhýbajú priviazaniu svojho kódu do konkrétneho rámu protokolovania. To uľahčuje prepínanie medzi rôznymi poskytovateľmi protokolovania bez významných zmien kódu, znížením blokovania dodávateľov a zvýšením flexibility projektu [9].
6. Škálovateľnosť a výkon: Microsoft.extensions.Logging je navrhnutý tak, aby efektívne zvládal vysoko výkonné scenáre protokolovania. Podporuje asynchrónne protokolovanie a dá sa optimalizovať pre rôzne prostredia, vďaka čomu je vhodná pre rozsiahle aplikácie [9].
Stručne povedané, Microsoft.extensions.Logging ponúka flexibilné, škálovateľné a široko podporované riešenie protokolovania, ktoré sa dobre integruje s injekciou závislosti a rôznymi poskytovateľmi protokolovania, vďaka čomu je vynikajúcou voľbou oproti predchádzajúcemu protokolovaciemu systému MVVMCross pre mnoho vývojových scenárov.
Citácie:[1] https://developer.vonage.com/en/blog/adaptive-library-logging-with-microsoft-extensionsions-logging-d
[2] https://www.mvvmcross.com/documentation/funmamentals/logging-new
[3] https://stackoverflow.com/questions/46483019/logging-from-Static-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/upgrading/upgrade-to-mvvvmcross-60
[6] https://stackoverflow.com/questions/42356802/how-does-microsoft-extensions-logging-work-for-full-full-tet-framework
[7] https://stackoverflow.com/questions/58209076/microsoft-extensions-logging-vs-nlog
[8] https://stackoverflow.com/questions/68075159/mvvm-cross-mogging-setup-class
[9] https://blog.stephencleary.com/2018/05/microsoft-extensions-logging-part-1-introduction.html
[10] https://www.mvvmcross.com/documentation/funmamentals/viewmodel-lifecycle
[11] https://www.reddit.com/r/dotnet/comments/142fs0y/serilog_vs_microsoft_logger_iLogger/
[12] https://github.com/mvvmcross/mvvmcross/issues/2936