Salīdzinot microsoft.extensions.logging ar mvxlog MVVMCross kontekstā, vairākas priekšrocības rodas, izmantojot pirmo virs pēdējās:
1. Paplašīgums un elastība: Microsoft.extensions.logging piedāvā ļoti paplašināmu ietvaru, kas ļauj ērti integrēt ar dažādiem trešo pušu mežizstrādes pakalpojumu sniedzējiem, piemēram, NLOG, Serilog un Log4net. Šī elastība pēc būtības nav iebūvēta MVXLOG, kas bija ierobežotāka pēc spējas integrēties ar dažādiem mežizstrādes ietvariem [1] [2]. Izmantojot microsoft.extensions.logging, jūs varat viegli pārslēgties starp dažādiem reģistrēšanas pakalpojumu sniedzējiem, nemainot lietojumprogrammas kodu, padarot to pielāgojamāku dažādām vidēm un prasībām.
2. Atkarības injekcijas atbalsts: Microsoft.extensions.logging ir paredzēts nemanāmi darbam ar atkarības injekciju (DI), kas ir daudzu modernu .NET lietojumprogrammu galvenā iezīme, ieskaitot tās, kas veidotas ar MVVMCross. Šī integrācija ļauj vieglāk pārbaudīt un ņirgāties par mežizstrādes komponentiem, kas ir izdevīgi, lai saglabātu stabilu testa pārklājumu [5] [8]. MVXLOG, lai arī injicējams, nepiedāvā tādu pašu integrācijas līmeni ar DI ietvariem, kā to dara microsoft.extensions.logging.
3. Standartizācija un sabiedrības atbalsts: Microsoft.extensions.logging ir plaši pieņemts standarts .NET ekosistēmā, kas nozīmē, ka tā gūst labumu no plaša sabiedrības atbalsta un dokumentācijas. Šī standartizācija ļauj izstrādātājiem vieglāk izprast un ieviest reģistrēšanu dažādos projektos un platformās [2] [11]. Turpretī MVXLog ir specifisks MVVMCross, un tas, iespējams, nav tik plaši atzīts vai atbalstīts ārpus šī ietvara.
4. Mērogojamība un veiktspēja: Microsoft.extensions.logging arhitektūra ir paredzēta, lai efektīvi apstrādātu liela mēroga lietojumprogrammas. Tas nodrošina tādas funkcijas kā žurnāla filtrēšana un kategorizēšana, kas var uzlabot veiktspēju, samazinot nevajadzīgu žurnāla izvadi [11]. Kaut arī MVXLog ir spējīgs, tas, iespējams, neatbilst mērogojamībai un veiktspējas optimizācijām, kas pieejamas vietnē microsoft.extensions.logging.
5. Konfigurācijas elastība: microsoft.extensions.logging ļauj konfigurēt, izmantojot dažādus līdzekļus, ieskaitot JSON failus (piemēram, `appSettings.json`), kas nodrošina elastīgu veidu, kā pārvaldīt žurnāla iestatījumus, neveicot lietojumprogrammas atkārtotu kompetenci [5]. Šī elastība ir īpaši noderīga vidē, kur reģistrēšanas vajadzības var bieži mainīties.
6. žurnālu līmeņi un smagums: abi ietvari atbalsta dažādus žurnālu līmeņus (piemēram, izsekošana, atkļūdošana, informācija, brīdinājums, kļūda), bet microsoft.extensions.logging ietver papildu “kritisko” līmeni un “nav” līmeni konfigurācijas nolūkos [11]. Tas nodrošina precīzāku kontroli pār mežizstrādes smagumu un konfigurāciju.
Rezumējot, lai gan MVXLog ir spējīgs reģistrēšanas risinājums MVVMCROSS ekosistēmā, Microsoft.Extensions.logging piedāvā plašāku saderību, paplašināmību un sabiedrības atbalstu, padarot to par daudzpusīgāku izvēli reģistrēšanas vajadzībām mūsdienīgās .NET lietojumprogrammās.
Atsauces:[1] https://www.mvvmcross.com/documentation/fundamentals/logging-new
[2] https://putridparrrot.com/blog/using-microsoft-extensions-logging/
[3] https://www.mvvmcross.com/documentation/advanced/customing-using-app-and-setup
[4] https://learn.microsoft.com/en-us/ef/core/logging-events-diagnostics/extensions-logging
[5] https://stackoverflow.com/questions/58209076/microsoft-extensions-logging-vs-nlog
[6] https://www.mvvmcross.com/mvvmcross-8.0.0-release/
[7] https://www.mvvmcross.com/documentation/fundamentals/viewmodel-lifecycle
[8] https://stackoverflow.com/questions/46483019/logging-from-static-members-with-microsoft-extensions-logging
[9] https://www.mvvmcross.com/logging
[10] https://stackoverflow.com/questions/17602137/mvvmcross-how-does-this-view-get-the-to-the-viewmodel/17602246
[11] https://blog.stephencleary.com/2018/06/microsoft-extensions-logging-part-2-types.html