ใน MVVMCROSS 8 มีการเปลี่ยนแปลงที่สำคัญในระบบการบันทึก นี่คือการเปลี่ยนแปลงที่สำคัญ:
1. สลับไปที่ microsoft.extensions.logging: mvvmcross 8 ละทิ้งอินเตอร์เฟสการบันทึกที่กำหนดเอง (`imvxlog`) และใช้` microsoft.extensions.logging` เฟรมเวิร์ก การเปลี่ยนแปลงนี้ให้ API ที่มีความเสถียรและได้รับการสนับสนุนอย่างกว้างขวางทำให้สามารถรวมเข้ากับผู้ให้บริการบันทึกบุคคลที่สามได้ง่ายขึ้นเช่น Serilog [1] [10]
2. การลบการพึ่งพาการสะท้อนกลับ: ซึ่งแตกต่างจากรุ่นก่อนหน้า MVVMCROSS 8 ไม่ได้ขึ้นอยู่กับผู้ให้บริการบุคคลที่สามโดยตรงผ่านการสะท้อนกลับ แต่จะใช้อินเตอร์เฟส `ilogger` และ` iloggerFactory 'เพื่อจัดการการบันทึกซึ่งสามารถฉีดเข้าไปในชั้นเรียนเช่น ViewModels, บริการและที่เก็บ [1]
3. ข้อกำหนดการใช้งาน: ผู้ใช้จะต้องใช้ `mvxsetup` ของตนเองอย่างชัดเจนและแทนที่วิธีการที่เกี่ยวข้องกับการบันทึกสองวิธี:` createlogprovider` และ `createlogfactory ' นี่คือการเปลี่ยนแปลงที่แตกหักจากรุ่นก่อนหน้าซึ่งมีการใช้งานเริ่มต้น [4] [10]
4. การปรับแต่งกับผู้ให้บริการบุคคลที่สาม: ผู้ใช้สามารถปรับแต่งการบันทึกโดยการติดตั้งผู้ให้บริการบุคคลที่สามเช่น Serilog สิ่งนี้เกี่ยวข้องกับการใช้เมธอด `createLogProvider` และ` createLogFactory 'ในไฟล์ `setup.cs` เพื่อกำหนดค่า serilog หรือผู้ให้บริการอื่น ๆ [1] [4]
5. การบันทึกแบบ SCOPED: ระบบการบันทึกใหม่อนุญาตให้ทำการบันทึกแบบกำหนดขอบเขตซึ่งเชื่อมโยงบันทึกโดยอัตโนมัติกับบริบทเฉพาะ (เช่น ViewModel) สิ่งนี้ทำให้ง่ายต่อการกรองบันทึกตามแหล่งที่มา [1]
โดยรวมแล้วการเปลี่ยนแปลงเหล่านี้มีจุดมุ่งหมายเพื่อให้ระบบการบันทึกที่ยืดหยุ่นและเป็นมาตรฐานมากขึ้นใน MVVMCROSS 8 ซึ่งสอดคล้องกับแนวทางปฏิบัติของระบบนิเวศ. NET ที่กว้างขึ้น
การอ้างอิง:[1] https://www.mvvmcross.com/documentation/fundamentals/logging-new
[2] https://www.mvvmcross.com/logging
[3] https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/alter-materialized-view-log.html
[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/