Menggunakan Microsoft.Extensions.Logging melalui sistem logging MVVMCross sebelumnya menawarkan beberapa manfaat:
1. Fleksibilitas dan ekstensibilitas: Microsoft.Extensions.Logging menyediakan lapisan abstraksi yang memungkinkan pengembang untuk menggunakan berbagai penyedia logging seperti serilog, nlog, atau log4net. Fleksibilitas ini berarti bahwa kerangka kerja logging dapat dengan mudah ditukar tergantung pada kebutuhan proyek, tanpa mengubah kode yang mendasarinya. Sebaliknya, sistem MVVMCross sebelumnya lebih kaku dan diperlukan implementasi spesifik untuk penyedia yang berbeda [1] [2].
2. Dukungan Injeksi Ketergantungan: Microsoft.Extensions. Logging terintegrasi dengan baik dengan kerangka kerja injeksi ketergantungan, membuatnya lebih mudah untuk menyuntikkan penebang ke dalam kelas. Ini sangat berguna untuk pengujian unit, karena memungkinkan pembuatan logger tiruan untuk memverifikasi perilaku logging [7]. MVVMCross juga mendukung injeksi ketergantungan untuk pencatatan, tetapi menggunakan Microsoft.Extensions.Logging memberikan pendekatan yang lebih standar di berbagai kerangka kerja [2].
3. Stabilitas dan Dukungan Komunitas: Microsoft.Extensions.Logging adalah API yang diadopsi secara luas dan stabil, didukung oleh Microsoft dan komunitas .NET yang lebih luas. Stabilitas ini memastikan bahwa itu akan terus dipertahankan dan diperbarui, memberikan keandalan jangka panjang untuk proyek [2] [9].
4. Konfigurasi Sederhana: Dengan Microsoft.Extensions.Logging, konfigurasi dapat dikelola melalui appsettings.json atau file konfigurasi lainnya, yang menyederhanakan proses pengaturan dibandingkan dengan beberapa kerangka kerja logging lainnya. Ini sangat bermanfaat ketika menggunakan penyedia seperti serilog atau NLOG, yang dapat dikonfigurasi menggunakan JSON [7].
5. Menghindari Penguncian Vendor: Dengan menggunakan lapisan abstraksi seperti Microsoft.Extensions.logging, pengembang menghindari mengikat kode mereka ke kerangka logging tertentu. Ini membuatnya lebih mudah untuk beralih antara berbagai penyedia logging tanpa perubahan kode yang signifikan, mengurangi penguncian vendor dan meningkatkan fleksibilitas proyek [9].
6. Skalabilitas dan Kinerja: Microsoft.Extensions.Logging dirancang untuk menangani skenario logging berkinerja tinggi secara efisien. Ini mendukung pencatatan asinkron dan dapat dioptimalkan untuk lingkungan yang berbeda, membuatnya cocok untuk aplikasi skala besar [9].
Singkatnya, Microsoft.Extensions.Logging menawarkan solusi logging yang fleksibel, terukur, dan banyak didukung yang terintegrasi dengan baik dengan injeksi ketergantungan dan berbagai penyedia penebangan, menjadikannya pilihan yang unggul daripada sistem pencatatan MVVMCross sebelumnya untuk banyak skenario pengembangan.
Kutipan:[1] https://developer.vonage.com/en/blog/adaptive-library-gogging-with-microsoft-extensions-gogging-dr
[2] https://www.mvvmcross.com/documentation/fundamentals/logging-new
[3] https://stackoverflow.com/questions/46483019/logging-from-static-members-with-microsoft-extensions-gogging
[4] https://learn.microsoft.com/en-us/ef/core/logging-events-diagnostics/extensions-gogging
[5] https://www.mvmcross.com/documentation/upgrading/upgrade-to-mvvmcross-60
[6] https://stackoverflow.com/questions/42356802/how-does-microsoft-extensions-gogging-work-for-full-net-framework
[7] https://stackoverflow.com/questions/58209076/microsoft-extensions-logging-vs-nlog
[8] https://stackoverflow.com/questions/68075159/mvvm-cross-gogging-setup-class
[9] https://blog.stephencleary.com/2018/05/microsoft-extensions-logging-part-1-introduction.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