Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Vilka är fördelarna med att använda Microsoft.Extensions.logging över MVVMCrosss tidigare loggningssystem


Vilka är fördelarna med att använda Microsoft.Extensions.logging över MVVMCrosss tidigare loggningssystem


Att använda Microsoft.Extensions.Logging över MVVMCross tidigare loggningssystem erbjuder flera fördelar:

1. Flexibilitet och utdragbarhet: Microsoft.Extensions.Logging ger ett abstraktionslager som gör det möjligt för utvecklare att använda olika loggningsleverantörer som Serilog, NLOG eller Log4Net. Denna flexibilitet innebär att loggningsramen enkelt kan bytas ut beroende på projektets behov utan att ändra den underliggande koden. Däremot var MVVMCross tidigare system mer styvt och krävde specifika implementeringar för olika leverantörer [1] [2].

2. Stöd för injektionsinjektion: Microsoft.Extensions.Logging integreras bra med beroenden injektionsramar, vilket gör det lättare att injicera loggare i klasser. Detta är särskilt användbart för enhetstestning, eftersom det gör det möjligt att skapa håliga loggare att verifiera loggningsbeteende [7]. MVVMCross stöder också beroendeinjektion för loggning, men med Microsoft.Extensions.logging ger ett mer standardiserat tillvägagångssätt över olika ramar [2].

3. Stabilitet och samhällsstöd: Microsoft.Extensions.Logging är ett allmänt antaget och stabilt API som stöds av Microsoft och det bredare .NET -samhället. Denna stabilitet säkerställer att den kommer att fortsätta att upprätthållas och uppdateras, vilket ger långsiktig tillförlitlighet för projekt [2] [9].

4. Förenklad konfiguration: Med Microsoft.Extensions.Logging kan konfiguration hanteras via AppSettings.json eller andra konfigurationsfiler, vilket förenklar installationsprocessen jämfört med vissa andra loggningsramar. Detta är särskilt fördelaktigt när du använder leverantörer som Serilog eller NLOG, som kan konfigureras med JSON [7].

5. Undvikande av leverantörens lock-in: Genom att använda ett abstraktionslager som Microsoft.Extensions.Logging undviker utvecklare att binda sin kod till en specifik loggningsram. Detta gör det lättare att växla mellan olika loggningsleverantörer utan betydande kodändringar, minska leverantörens inlockning och öka projektflexibiliteten [9].

6. Skalbarhet och prestanda: Microsoft.Extensions.Logging är utformad för att hantera högpresterande loggningsscenarier effektivt. Den stöder asynkron avverkning och kan optimeras för olika miljöer, vilket gör den lämplig för storskaliga applikationer [9].

Sammanfattningsvis erbjuder Microsoft.Extensions.logging en flexibel, skalbar och allmänt stödd loggningslösning som integreras väl med beroendeinjektion och olika loggningsleverantörer, vilket gör det till ett överlägset val över MVVMCrosss tidigare loggningssystem för många utvecklingsscenarier.

Citeringar:
[1] https://developer.vonage.com/en/blog/adaptive-library-logging-with-microsoft-extensions-logging-dr
[2] https://www.mvvmcross.com/documentation/fundamentals/logging-new
[3] https://stackoverflow.com/questions/46483019/logging-from-static-members-with-microsoft-extensions-logging
[4] https://learn.microsoft.com/en-us/ef/core/logging-events-diagnostics/extensions-logging
[5] https://www.mvvmcross.com/documentation/upgrading/upgrade-to-mvvmcross-60
]
[7] https://stackoverflow.com/questions/58209076/microsoft-extensions-logging-vs-nlog
[8] https://stackoverflow.com/questions/68075159/mvvm-cross-logging-setup-class
[9] https://blog.stephencleary.com/2018/05/microsoft-extensions-logging-part-1-introduktion.html
[10] https://www.mvvmcross.com/documentation/fundamentals/viewmodel-lifecycle
[11] https://www.reddit.com/r/dotnet/comments/142fs0y/serilog_vs_microsoft_logger_ilogger/
[12] https://github.com/mvvmcross/mvvmcross/issues/2936