I MVVMCross 8 gjordes betydande förändringar i loggningssystemet. Här är de viktigaste förändringarna:
1. Byt till Microsoft.Extensions.logging: MVVMCross 8 övergav sitt anpassade loggningsgränssnitt (`IMVXLOG`) och antog` Microsoft.Extensions.logging` -ramverket. Denna förändring ger ett stabilt och allmänt stödt API, vilket möjliggör enklare integration med olika tredjepartsloggningsleverantörer som Serilog [1] [10].
2. Avlägsnande av reflektionsberoende: Till skillnad från den tidigare versionen beror MVVMCross 8 inte direkt på tredjepartsleverantörer genom reflektion. Istället använder den gränssnitten `ilogger 'och` iloggerfactory` för att hantera loggning, som kan injiceras i klasser som ViewModels, Services och RepoSitories [1].
3. Implementeringskrav: Användare måste nu uttryckligen implementera sitt eget `mvxsetup 'derivat och åsidosätta två loggningsrelaterade metoder:` createlogprovider` och `createlogfactory'. Detta är en brytningsändring från tidigare versioner där standardimplementeringar tillhandahölls [4] [10].
4. Anpassning med tredjepartsleverantörer: Användare kan anpassa loggning genom att installera tredjepartsleverantörer som Serilog. Detta handlar om att implementera metoderna "CreateLogProvider" och "createLogFactory" i filen "setup.cs" för att konfigurera serilog eller andra leverantörer [1] [4].
5. SCOPED LOGGING: Det nya loggningssystemet möjliggör scoped logging, som automatiskt associerar loggar med specifika sammanhang (t.ex. en ViewModel). Detta gör det lättare att filtrera loggar baserat på deras källa [1].
Sammantaget syftar dessa förändringar till att tillhandahålla ett mer flexibelt och standardiserat loggningssystem i MVVMCross 8, i linje med bredare .NET -ekosystemmetoder.
Citeringar:[1] https://www.mvvmcross.com/documentation/fundamentals/logging-new
[2] https://www.mvvmcross.com/logging
]
[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-setup-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/