Dalam MVVMCross 8, perubahan signifikan dilakukan pada sistem penebangan. Berikut adalah perubahan kuncinya:
1. Beralih ke Microsoft.Extensions.Logging: MVVMCross 8 meninggalkan antarmuka logging khusus (`imvxlog`) dan mengadopsi kerangka` microsoft.extensions.logging`. Perubahan ini memberikan API yang stabil dan didukung secara luas, memungkinkan integrasi yang lebih mudah dengan berbagai penyedia penebangan pihak ketiga seperti serilog [1] [10].
2. Penghapusan ketergantungan refleksi: Tidak seperti versi sebelumnya, MVVMCross 8 tidak secara langsung bergantung pada penyedia pihak ketiga melalui refleksi. Sebaliknya, ia menggunakan antarmuka `ilogger` dan` iloggerFactory` untuk mengelola logging, yang dapat disuntikkan ke kelas -kelas seperti viewmodels, layanan, dan repositori [1].
3. Persyaratan Implementasi: Pengguna sekarang harus secara eksplisit mengimplementasikan turunan `mvxsetup` mereka sendiri dan mengganti dua metode yang berhubungan dengan logging:` createLogProvider` dan `createLogFactory`. Ini adalah perubahan besar dari versi sebelumnya di mana implementasi default disediakan [4] [10].
4. Kustomisasi dengan penyedia pihak ketiga: Pengguna dapat menyesuaikan penebangan dengan menginstal penyedia pihak ketiga seperti serilog. Ini melibatkan penerapan metode `createLogProvider` dan` createLogFactory` dalam file `setup.cs` untuk mengonfigurasi serilog atau penyedia lain [1] [4].
5. Scoped Logging: Sistem logging baru memungkinkan untuk pencatatan tertutup, yang secara otomatis mengaitkan log dengan konteks spesifik (mis., ViewModel). Ini membuatnya lebih mudah untuk memfilter log berdasarkan sumbernya [1].
Secara keseluruhan, perubahan ini bertujuan untuk menyediakan sistem logging yang lebih fleksibel dan standar di MVVMCross 8, sejajar dengan praktik ekosistem .NET yang lebih luas.
Kutipan:[1] https://www.mvvmcross.com/documentation/fundamentals/logging-new
[2] https://www.mvmcross.com/logging
[3] https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/alter-siaterialized-view-log.html
[4] https://www.mvmcross.com/documentation/upgrading/upgrade-to-mvvmcross-80
[5] https://www.mvmcross.com/documentation/fundamentals/viewmodel-lifecycle
[6] https://github.com/mvvmcross/mvvmcross/blob/develop/changelog.md
[7] https://stackoverflow.com/questions/68075159/mvvm-cross-gogging-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/