เมื่อเปรียบเทียบ microsoft.extensions.logging กับ mvxlog ในบริบทของ mvvmcross ประโยชน์หลายอย่างเกิดขึ้นจากการใช้อดีตมากกว่าหลัง:
1. การขยายและความยืดหยุ่น: Microsoft.extensions.logging เสนอกรอบการทำงานที่สามารถขยายได้สูงซึ่งช่วยให้การรวมเข้ากับผู้ให้บริการบันทึกบุคคลที่สามได้ง่ายเช่น NLOG, Serilog และ Log4Net ความยืดหยุ่นนี้ไม่ได้ถูกสร้างขึ้นโดยเนื้อแท้ใน mvxlog ซึ่งมีข้อ จำกัด มากขึ้นในความสามารถในการรวมเข้ากับกรอบการบันทึกที่แตกต่างกัน [1] [2] ด้วย microsoft.extensions.logging คุณสามารถสลับระหว่างผู้ให้บริการการบันทึกที่แตกต่างกันได้อย่างง่ายดายโดยไม่ต้องเปลี่ยนรหัสแอปพลิเคชันของคุณทำให้สามารถปรับให้เข้ากับสภาพแวดล้อมและข้อกำหนดที่แตกต่างกันได้มากขึ้น
2. การสนับสนุนการฉีดพึ่งพา: Microsoft.extensions.logging ออกแบบมาเพื่อทำงานอย่างราบรื่นกับการฉีดพึ่งพา (DI) ซึ่งเป็นคุณสมบัติหลักของแอปพลิเคชัน. NET ที่ทันสมัยจำนวนมากรวมถึงที่สร้างด้วย MVVMcross การรวมนี้ช่วยให้การทดสอบหน่วยที่ง่ายขึ้นและการเยาะเย้ยส่วนประกอบการบันทึกซึ่งเป็นประโยชน์ในการรักษาความครอบคลุมการทดสอบที่แข็งแกร่ง [5] [8] mvxlog ในขณะที่ฉีดไม่ได้เสนอระดับการรวมเข้ากับเฟรมเวิร์ก DI เช่นเดียวกับ Microsoft.extensions.logging
3. การสร้างมาตรฐานและการสนับสนุนชุมชน: Microsoft.extensions.logging เป็นมาตรฐานที่นำมาใช้อย่างกว้างขวางในระบบนิเวศ. NET ซึ่งหมายความว่ามันได้รับประโยชน์จากการสนับสนุนและเอกสารประกอบชุมชน มาตรฐานนี้ทำให้นักพัฒนาเข้าใจและใช้การบันทึกผ่านโครงการและแพลตฟอร์มที่แตกต่างกันได้ง่ายขึ้น [2] [11] ในทางตรงกันข้าม mvxlog นั้นมีความเฉพาะเจาะจงกับ mvvmcross และอาจไม่ได้รับการยอมรับอย่างกว้างขวางหรือสนับสนุนนอกกรอบนั้น
4. ความสามารถในการปรับขนาดและประสิทธิภาพ: สถาปัตยกรรมของ Microsoft.extensions.logging ได้รับการออกแบบมาเพื่อจัดการแอปพลิเคชันขนาดใหญ่อย่างมีประสิทธิภาพ มันมีคุณสมบัติเช่นการกรองบันทึกและการจัดหมวดหมู่ซึ่งสามารถปรับปรุงประสิทธิภาพโดยการลดเอาต์พุตบันทึกที่ไม่จำเป็น [11] ในขณะที่ mvxlog มีความสามารถ แต่อาจไม่ตรงกับความสามารถในการปรับขนาดและการเพิ่มประสิทธิภาพประสิทธิภาพที่มีอยู่ใน microsoft.extensions.logging
5. การกำหนดค่าความยืดหยุ่น: Microsoft.extensions.logging อนุญาตให้กำหนดค่าด้วยวิธีการต่าง ๆ รวมถึงไฟล์ JSON (เช่น `appsettings.json`) ซึ่งเป็นวิธีที่ยืดหยุ่นในการจัดการการตั้งค่าบันทึกโดยไม่ต้องคอมไพล์แอปพลิเคชัน [5] ความยืดหยุ่นนี้มีประโยชน์อย่างยิ่งในสภาพแวดล้อมที่ความต้องการการบันทึกอาจเปลี่ยนแปลงบ่อยครั้ง
6. ระดับบันทึกและความรุนแรง: เฟรมเวิร์กทั้งสองรองรับระดับการบันทึกที่หลากหลาย (เช่นการติดตาม, การดีบัก, ข้อมูล, เตือน, ข้อผิดพลาด) แต่ Microsoft.extensions.logging รวมถึงระดับ 'วิกฤต' เพิ่มเติมและระดับ 'ไม่มี' สำหรับวัตถุประสงค์ในการกำหนดค่า [11] สิ่งนี้ให้การควบคุมที่ละเอียดยิ่งขึ้นเกี่ยวกับความรุนแรงและการกำหนดค่าการบันทึก
โดยสรุปในขณะที่ mvxlog เป็นโซลูชันการบันทึกที่มีความสามารถภายในระบบนิเวศ MVVMcross, Microsoft.extensions.logging นำเสนอความเข้ากันได้ที่กว้างขึ้นการขยายและการสนับสนุนชุมชนทำให้เป็นตัวเลือกที่หลากหลายมากขึ้น
การอ้างอิง:[1] https://www.mvvmcross.com/documentation/fundamentals/logging-new
[2] https://putridparrot.com/blog/using-microsoft-extensions-logging/
[3] https://www.mvvmcross.com/documentation/advanced/customizing-using-app-and-setup
[4] https://learn.microsoft.com/en-us/ef/core/logging-events-diagnostics/extensions-logging
[5] https://stackoverflow.com/questions/58209076/microsoft-extensions-logging-vs-nlog
[6] https://www.mvvmcross.com/mvvmcross-8.0.0-release/
[7] https://www.mvvmcross.com/documentation/fundamentals/viewmodel-lifecycle
[8] https://stackoverflow.com/questions/46483019/logging-from-static-members-with-microsoft-extensions-logging
[9] https://www.mvvmcross.com/logging
[10] https://stackoverflow.com/questions/17602137/mvvmcross-how-does-his-view-get-linked-to-the-viewmodel/17602246
[11] https://blog.stephencleary.com/2018/06/microsoft-extensions-logging-part-2-types.html