Pri porovnaní Microsoft.Extensions.Logging s MVXLog v kontexte MVVMCross sa z použitia prvého z nich vyplýva z niekoľkých výhod:
1. Rozstaviteľnosť a flexibilita: Microsoft.extensions.Logging ponúka vysoko rozšíriteľný rámec, ktorý umožňuje ľahkú integráciu s rôznymi poskytovateľmi protokolovania tretích strán, ako sú NLOG, Serilog a Log4Net. Táto flexibilita nie je vo svojej podstate zabudovaná do MVXLog, ktorá bola obmedzenejšia v jeho schopnosti integrovať sa s rôznymi rámcami protokolovania [1] [2]. S Microsoft.Extensions.Logging môžete ľahko prepínať medzi rôznymi poskytovateľmi protokolovania bez zmeny kódu vašej aplikácie, čím sa prispôsobí rôznym prostrediam a požiadavkám.
2. Podpora vstrekovania závislosti: Microsoft.extensions.Logging je navrhnutý tak, aby bezproblémovo pracoval s injekciou závislosti (DI), čo je základnou črtou mnohých moderných aplikácií .NET, vrátane aplikácií vytvorených so spoločnosťou MVVMCross. Táto integrácia umožňuje ľahšie testovanie jednotiek a zosmiešnenie komponentov ťažby dreva, čo je prospešné pre udržanie robustného pokrytia testov [5] [8]. MVXLog, hoci injekčný, neponúka rovnakú úroveň integrácie s DI Frameworks ako Microsoft.extensions.logging.
3. Štandardizácia a podpora komunity: Microsoft.extensions.Logging je široko prijatý štandard v ekosystéme .NET, čo znamená, že má úžitok z rozsiahlej podpory a dokumentácie komunity. Táto štandardizácia uľahčuje vývojárom porozumenie a implementáciu protokolovania v rôznych projektoch a platformách [2] [11]. Naopak, MVXLog je špecifický pre MVVMCross a nemusí byť tak široko rozpoznávaný alebo podporovaný mimo tohto rámca.
4. Škálovateľnosť a výkon: Architektúra spoločnosti Microsoft.Extensions.Logging je navrhnutý tak, aby efektívne zvládal rozsiahle aplikácie. Poskytuje funkcie, ako je filtrovanie protokolov a kategorizácia, ktoré môžu zlepšiť výkon znížením zbytočného výstupu zohľadnosti [11]. Zatiaľ čo MVXLog je schopný, nemusí zodpovedať škálovateľnosti a optimalizáciách výkonu dostupných v Microsoft.extensions.logging.
5. Flexibilita konfigurácie: Microsoft.extensions.Logging umožňuje konfiguráciu rôznymi prostriedkami vrátane súborov JSON (napr. „Appsettings.json`), čo poskytuje flexibilný spôsob správy nastavení protokolov bez prepočtu aplikácie [5]. Táto flexibilita je obzvlášť užitočná v prostrediach, kde sa potreby protokolovania môžu často meniť.
6. Úrovne protokolov a závažnosti: Oba rámce podporujú rôzne úrovne protokolov (napr. Sledovanie, ladenie, informácie, varovanie, chyba), ale Microsoft.Extensions.Logging obsahuje ďalšiu úroveň „kritickej“ a „žiadnu“ na účely konfigurácie [11]. To poskytuje viac podrobnejšie riadenie pri závažnosti a konfigurácii protokolovania.
Stručne povedané, zatiaľ čo MVXLog je schopné protokolovacie riešenie v rámci ekosystému MVVMCross, Microsoft.Extensions.Logging ponúka širšiu kompatibilitu, rozšíriteľnosť a podporu komunity, vďaka čomu je všestrannejšou voľbou pre potreby protokolovania v moderných aplikáciách .NET.
Citácie:[1] https://www.mvvmcross.com/documentation/funmamentals/logging-new
[2] https://putridParrot.com/blog/using-microsoft-extensions-logging/
[3] https://www.mvvmcross.com/documentation/advanced/custoughing-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/funmamentals/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-his-view-get-get-t-the-the-viewmodel/17602246
[11] https://blog.stephencleary.com/2018/06/microsoft-Extensions-logging-part-2-types.html