MVVMCross의 맥락에서 Microsoft.extensions.logging을 MVXLOG와 비교할 때 후자를 사용하여 전자를 사용함으로써 몇 가지 이점이 나타납니다.
1. 확장 성 및 유연성 : Microsoft.extensions.logging은 NLOG, Serilog 및 Log4Net과 같은 다양한 타사 로깅 제공 업체와 쉽게 통합 할 수있는 확장 가능한 프레임 워크를 제공합니다. 이 유연성은 본질적으로 MVXLOG에 내장되지 않았으며, 이는 다른 로깅 프레임 워크와 통합하는 능력이 더 제한적이었습니다 [1] [2]. Microsoft.extensions.logging을 사용하면 응용 프로그램 코드를 변경하지 않고 다른 로깅 제공 업체간에 쉽게 전환 할 수 있으므로 다양한 환경 및 요구 사항에 더 적응할 수 있습니다.
2. 종속성 주입 지원 : Microsoft.extensions.logging은 MVVMCross로 구축 된 많은 최신 .NET 애플리케이션의 핵심 기능인 종속성 주입 (DI)과 완벽하게 작동하도록 설계되었습니다. 이 통합은 로깅 구성 요소의 장치 테스트 및 조롱을 더 쉽게 할 수 있으며, 이는 강력한 테스트 범위를 유지하는 데 유리합니다 [5] [8]. MVXLOG는 주입 가능하지만 Microsoft.extensions.logging과 동일한 수준의 DI 프레임 워크와 동일한 수준의 통합을 제공하지 않습니다.
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은 더 넓은 호환성, 확장 성 및 커뮤니티 지원을 제공하므로 최신 .NET 애플리케이션에서 로깅 요구에보다 다양한 선택이됩니다.
인용 :[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-ctatic-members-with-microsoft-extensions-logging
[9] https://www.mvvmcross.com/logging
[10] https://stackoverflow.com/questions/17602137/mvvmcross-how-does-this-get-get-linked-tothe-viewmodel/17602246
[11] https://blog.stephencleary.com/2018/06/microsoft-extensions-logging-part-2-types.html