W MVVMCross 8 wprowadzono znaczące zmiany w systemie rejestrowania. Oto kluczowe zmiany:
1. Przełącz na Microsoft.Extensions.logging: Mvvmcross 8 porzucił niestandardowy interfejs rejestrowania (`IMVXLOG`) i przyjął framework` Microsoft.Extensions.logging`. Ta zmiana zapewnia stabilny i szeroko obsługiwany interfejs API, umożliwiający łatwiejszą integrację z różnymi dostawcami rejestrowania stron trzecich, takimi jak Serilog [1] [10].
2. Usunięcie zależności refleksji: W przeciwieństwie do poprzedniej wersji, MVVMCROSS 8 nie zależy bezpośrednio od dostawców stron trzecich poprzez odbicie. Zamiast tego używa interfejsów „ilogger” i `` iLoggerFactory 'do zarządzania rejestrowaniem, które można wstrzykiwać na klasy takie jak ViewModels, usługi i repozytoria [1].
3. Wymagania dotyczące implementacji: Użytkownicy muszą teraz wyraźnie wdrożyć własną pochodną „MvxsetUp` i zastąpić dwie metody związane z rejestrowaniem:` CreateLogProvider` i „CreateLogFactory”. Jest to złamanie zmiany w stosunku do poprzednich wersji, w których dostarczono domyślne implementacje [4] [10].
4. Dostosowywanie z zewnętrznymi dostawcami: Użytkownicy mogą dostosowywać rejestrowanie, instalując dostawców stron trzecich, takich jak Serilog. Obejmuje to wdrożenie metod „CreateLogProvider” i „CreateLogFactory” w pliku `setup.cs` w celu skonfigurowania Serilog lub innych dostawców [1] [4].
5. Zakopiowane rejestrowanie: Nowy system rejestrowania umożliwia zaskakujące rejestrowanie, które automatycznie kojarzy dzienniki z określonymi kontekstami (np. ViewModel). Ułatwia to filtrowanie dzienników na podstawie ich źródła [1].
Ogólnie rzecz biorąc, zmiany te mają na celu zapewnienie bardziej elastycznego i znormalizowanego systemu rejestrowania w MVVMCROSS 8, dostosowując się do szerszych praktyk ekosystemu .NET.
Cytaty:[1] https://www.mvvmcross.com/documentation/fundamentals/logging-new
[2] https://www.mvvmcross.com/logging
[3] https://docs.oracle.com/en/database/oracle-database/19/sqlrf/alter-materialized-view-log.html
[4] https://www.mvvmcross.com/documentation/upgrading/upgrade-to-mvvmcross-80
[5] https://www.mvvmcross.com/documentation/fundamentals/viewmodel-lifecycle
[6] https://github.com/mvvmcross/mvvmcross/blob/develop/changelog.md
[7] https://stackoverflow.com/questions/68075159/mvvm-cross-logging-etup-class
[8] https://github.com/mvvmcross/mvvmcross/issues/1649
[9] https://github.com/mvvmcross/mvvmcross/releases
[10] https://www.mvvmcross.com/mvvmcross-8.0.0-release/