Porównując Microsoft.Extensions.loging z MVXLOG w kontekście MVVMCROSS, wynika z tego pierwszego:
1. Rozszerzalność i elastyczność: Microsoft.Extensions.Logging oferuje wysoce rozszerzalną strukturę, która umożliwia łatwą integrację z różnymi dostawcami rejestrowania stron trzecich, takimi jak NLOG, Serilog i Log4net. Ta elastyczność nie jest z natury wbudowana w MVXLOG, co było bardziej ograniczone pod względem zdolności do integracji z różnymi ramami rejestrowania [1] [2]. Dzięki Microsoft.Extensions.logging możesz łatwo przełączać się między różnymi dostawcami rejestrowania bez zmiany kodu aplikacji, dzięki czemu jest bardziej dostosowując się do różnych środowisk i wymagań.
2. Wsparcie wtrysku zależności: Microsoft.Extensions.logging został zaprojektowany do bezproblemowo z wtryskiem zależności (DI), który jest podstawową cechą wielu nowoczesnych aplikacji .NET, w tym zbudowanych z MVVMCross. Ta integracja pozwala na łatwiejsze testowanie jednostkowe i kpiny składników rejestrowania, co jest korzystne dla utrzymania solidnego pokrycia testowego [5] [8]. MVXLOG, choć do wstrzykiwań, nie oferuje takiego samego poziomu integracji z DI Frameworks jak Microsoft.Extensions.logging.
3. Standaryzacja i wsparcie społeczności: Microsoft.Extensions.logging jest powszechnie przyjętym standardem w ekosystemie .NET, co oznacza, że korzysta z szerokiego wsparcia i dokumentacji społeczności. Ta standaryzacja ułatwia programistom zrozumienie i wdrażanie rejestrowania różnych projektów i platform [2] [11]. Natomiast MVXLOG jest specyficzny dla MVVMCROSS i może nie być tak powszechnie rozpoznawany lub obsługiwany poza tym ramą.
4. Skalowalność i wydajność: Architektura Microsoft.Extensions.Logging jest zaprojektowana do efektywnego obsługi aplikacji na dużą skalę. Zapewnia funkcje takie jak filtrowanie dziennika i kategoryzacja, które mogą poprawić wydajność poprzez zmniejszenie niepotrzebnego wyjścia dziennika [11]. Chociaż MVXLOG jest zdolny, może nie pasować do optymalizacji skalowalności i wydajności dostępne w Microsoft.Extensions.logging.
5. Elastyczność konfiguracji: Microsoft.Extensions.logging umożliwia konfigurację za pomocą różnych środków, w tym plików JSON (np. „Appsettings.json`), który zapewnia elastyczny sposób zarządzania ustawieniami dziennika bez ponownego ponownego kompleksowania aplikacji [5]. Ta elastyczność jest szczególnie przydatna w środowiskach, w których potrzeby rejestrowania mogą często się zmieniać.
6. Poziomy dziennika i nasilenie: Oba frameworki obsługują różne poziomy dziennika (np. Śledzenie, debugowanie, informacje, ostrzeżenie, błąd), ale Microsoft.Extensions.Logging obejmuje dodatkowy poziom „krytyczny” i poziom „brak” do celów konfiguracji [11]. Zapewnia to bardziej szczegółową kontrolę nad rejestrowaniem nasilenia i konfiguracji.
Podsumowując, podczas gdy MVXLOG jest rozwiązaniem do rejestrowania w ekosystemie MVVMCROSS, Microsoft.Extensions.Logging oferuje szerszą kompatybilność, rozszerzalność i wsparcie społeczności, co czyni go bardziej wszechstronnym wyborem do rejestrowania potrzeb w nowoczesnych aplikacjach .NET.
Cytaty:[1] https://www.mvvmcross.com/documentation/fundamentals/logging-new
[2] https://putridparrot.com/blog/using-licrosoft-extensions-logging/
[3] https://www.mvvmcross.com/documentation/advanced/customizing-using-app-andetup
[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-mycrosoft-extensions-logging
[9] https://www.mvvmcross.com/logging
[10] https://stackoverflow.com/questions/17602137/mvvmcross-how-does-this-view-get-linked-to-the-viewmodel/17602246
[11] https://blog.stephencleary.com/2018/06/microsoft-extensions-logging-part-2-types.html