Uporaba Microsoft.Extensions.Logging prek prejšnjega sistema za beleženje MVVMcrossa ponuja več prednosti:
1. Prilagodljivost in razširljivost: Microsoft.Extensions.Logging ponuja abstrakcijski sloj, ki razvijalcem omogoča uporabo različnih ponudnikov sečnje, kot so serilog, Nlog ali log4net. Ta prilagodljivost pomeni, da je okvir za beleženje enostavno zamenjati, odvisno od potreb projekta, ne da bi spremenili osnovno kodo. V nasprotju s tem je bil prejšnji sistem MVVMcrossa bolj tog in je zahteval posebne izvedbe za različne ponudnike [1] [2].
2. Podpora za vbrizgavanje odvisnosti: Microsoft.Extensions.Logging se dobro integrira z okviri za vbrizgavanje odvisnosti, kar olajša vbrizgavanje drvalnikov v razrede. To je še posebej koristno za testiranje enot, saj omogoča ustvarjanje posmeh za preverjanje vedenja beleženja [7]. MVVMcross podpira tudi vbrizgavanje odvisnosti za beleženje, vendar z uporabo Microsoft.Extensions.logging zagotavlja bolj standardiziran pristop v različnih okvirih [2].
3. Stabilnost in podpora skupnosti: Microsoft.Extensions.Logging je široko sprejet in stabilen API, ki ga podpirata Microsoft in širša skupnost .NET. Ta stabilnost zagotavlja, da se bo še naprej vzdrževala in posodabljala, kar zagotavlja dolgoročno zanesljivost projektov [2] [9].
4. Poenostavljena konfiguracija: Z Microsoft.Extensions.Logging je konfiguracijo mogoče upravljati prek AppSettings.json ali drugih konfiguracijskih datotek, ki poenostavi postopek nastavitve v primerjavi z nekaterimi drugimi okviri zapisovanja. To je še posebej koristno pri uporabi ponudnikov, kot sta Serilog ali NLOG, ki jih je mogoče konfigurirati z uporabo JSON [7].
5. Izogibanje zaklepanju prodajalca: Z uporabo abstrakcijskega sloja, kot je Microsoft.Extensions.Logging, razvijalci se izogibajo vezanju svoje kode na določen okvir za beleženje. To olajša preklapljanje med različnimi ponudniki sečnje brez pomembnih sprememb kode, zmanjša zaklepanje prodajalcev in poveča prilagodljivost projekta [9].
6. razširljivost in zmogljivost: Microsoft.Extensions.Logging je zasnovan za učinkovito ravnanje s scenariji za beleženje z visoko zmogljivostjo. Podpira asinhrono sečnjo in ga je mogoče optimizirati za različna okolja, zaradi česar je primeren za obsežne aplikacije [9].
Če povzamemo, Microsoft.Extensions.Logging ponuja prilagodljivo, razširljivo in široko podprto rešitev za beleženje, ki se dobro integrira z vbrizgavanjem odvisnosti in različnimi ponudniki sečnje, zaradi česar je vrhunska izbira v primerjavi s prejšnjim sistemom za beleženje MVVMcross za številne razvojne scenarije.
Navedbe:[1] https://developer.vonage.com/sl/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-m-m-mbers-with-microsoft-extensions-logging
[4] https://learn.microsoft.com/en-us/ef/core/logging-events-diagnostics/Extensionslogging
[5] https://www.mvvmcross.com/documentation/upgrading/upgrade-to-mvvmcross-60
[6] https://stackoverflow.com/questions/42356802/how-does-microsoft-extensions-logging-work-for-full-on-framework
[7] https://stackoverflow.com/Questions/58209076/microsoft-extensions-logging-vs-nlog
[8] https://stackoverflow.com/Questions/68075159/mvvm-cross-loggge-setup-class
[9] https://blog.stephencleary.com/2018/05/microsoft-extensions-logging-part-1-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/isissue/2936