Microsoft.extensions.yping MVVMCross'un önceki günlük kaydı sistemini kullanma çeşitli avantajlar sunar:
1. Esneklik ve genişletilebilirlik: microsoft.extensions.logging, geliştiricilerin serilog, nlog veya log4net gibi çeşitli günlük sağlayıcılarını kullanmasına izin veren bir soyutlama katmanı sağlar. Bu esneklik, tomruklama çerçevesinin, temel kodu değiştirmeden projenin ihtiyaçlarına bağlı olarak kolayca değiştirilebileceği anlamına gelir. Buna karşılık, MVVMCross'un önceki sistemi daha katı ve farklı sağlayıcılar için belirli uygulamalar gerektiriyordu [1] [2].
2. Bağımlılık Enjeksiyon Desteği: Microsoft.Extensions.Logging, bağımlılık enjeksiyon çerçeveleri ile iyi entegre olur ve kaydedicileri sınıflara enjekte etmeyi kolaylaştırır. Bu, birim testi için özellikle yararlıdır, çünkü sahte günlüğe kaydettiklerin günlüğe kaydetme davranışını doğrulamasına izin verir [7]. MVVMCross ayrıca günlük kaydı için bağımlılık enjeksiyonunu destekler, ancak microsoft.extensions.logging, farklı çerçevelerde daha standart bir yaklaşım sağlar [2].
3. İstikrar ve Topluluk Desteği: Microsoft.extensions.Logging, Microsoft ve daha geniş .NET topluluğu tarafından desteklenen yaygın olarak benimsenen ve istikrarlı bir API'dır. Bu istikrar, projeler için uzun vadeli güvenilirlik sağlayarak korunmaya ve güncellenmeye devam etmesini sağlar [2] [9].
4. Basitleştirilmiş yapılandırma: Microsoft.extensions.logging ile yapılandırma, kurulum işlemini diğer bazı günlüğe kaydetme çerçevelerine kıyasla basitleştiren AppSettings.json veya diğer yapılandırma dosyaları aracılığıyla yönetilebilir. Bu, özellikle JSON kullanılarak yapılandırılabilen Serilog veya NLOG gibi sağlayıcılar kullanılırken faydalıdır [7].
5. Satıcı kilitlenmesinden kaçınma: Microsoft.extensions.logging gibi bir soyutlama katmanı kullanarak, geliştiriciler kodlarını belirli bir günlük çerçevesine bağlamaktan kaçınırlar. Bu, önemli kod değişiklikleri olmadan farklı günlük sağlayıcıları arasında geçiş yapmayı, satıcının kilitlenmesini azaltmayı ve proje esnekliğini artırmayı kolaylaştırır [9].
6. Ölçeklenebilirlik ve Performans: Microsoft.extensions.Logging, yüksek performanslı günlüğe kaydetme senaryolarını verimli bir şekilde işlemek için tasarlanmıştır. Eşzamansız günlüğü destekler ve farklı ortamlar için optimize edilebilir, bu da onu büyük ölçekli uygulamalar için uygun hale getirir [9].
Özetle, Microsoft.extensions.logging, bağımlılık enjeksiyonu ve çeşitli günlük kaydı sağlayıcılarıyla iyi bir şekilde entegre olan esnek, ölçeklenebilir ve yaygın olarak desteklenen bir günlüğü çözümü sunar ve bu da birçok geliştirme senaryosu için MVVMCross'un önceki günlük kaydı sistemi üzerinde üstün bir seçimdir.
Alıntılar:[1] https://deceloper.vonage.com/en/blog/adaptive-library-logging-with-with-with-setensions-logging-dr
[2] https://www.mvvmcross.com/documentation/fundament/logging-new
[3] https://stackoverflow.com/questions/46483019/logging-from-static-members-with-icrosoft-extensions-logging
[4] https://learn.microsoft.com/en-us/ef/core/logging-events-diamnostics/extensions-loging
[5] https://www.mvvmcross.com/documentation/upgrading/upgrade-ton-mvmcross-60
[6] https://stackoverflow.com/questions/42356802/how-does-microsoft-extensions-logging-work-for-full-net-framework
[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-introduction.html
[10] https://www.mvvmcross.com/documentation/fundament/viewmodel-lifecycle
[11] https://www.reddit.com/r/dotnet/comments/142fs0y/serilog_vs_microsoft_logger_ilogger/
[12] https://github.com/mvvmcross/mvvmcross/issues/2936