Microsoft.extensions.logging mvvmcross의 이전 로깅 시스템을 사용하면 몇 가지 이점이 있습니다.
1. 유연성 및 확장 성 : Microsoft.extensions.logging은 개발자가 Serilog, NLOG 또는 Log4Net과 같은 다양한 로깅 제공자를 사용할 수있는 추상화 계층을 제공합니다. 이 유연성은 기본 코드를 변경하지 않고 프로젝트의 요구에 따라 로깅 프레임 워크를 쉽게 교체 할 수 있음을 의미합니다. 대조적으로, MVVMCross의 이전 시스템은 다른 공급자에게 더 엄격하고 특정 구현이 필요했습니다 [1] [2].
2. 종속성 주입 지원 : Microsoft.extensions.logging은 종속성 주입 프레임 워크와 잘 통합되어 로거를 클래스에 쉽게 주입 할 수 있습니다. 이는 Mock Loggers의 생성이 벌목 동작을 확인할 수있게되므로 단위 테스트에 특히 유용합니다 [7]. MVVMCross는 또한 로깅의 종속성 주입을 지원하지만 Microsoft.extensions.logging은 다른 프레임 워크에서보다 표준화 된 접근 방식을 제공합니다 [2].
3. 안정성 및 커뮤니티 지원 : Microsoft.extensions.logging은 Microsoft와 광범위한 .NET 커뮤니티가 지원하는 널리 채택되고 안정적인 API입니다. 이 안정성은 프로젝트에 대한 장기 신뢰성을 제공하여 계속 유지되고 업데이트 될 수 있도록 보장합니다 [2] [9].
4. 단순화 된 구성 : microsoft.extensions.logging을 사용하여 AppSettings.json 또는 기타 구성 파일을 통해 구성을 관리 할 수 있으며, 다른 로깅 프레임 워크에 비해 설정 프로세스를 단순화합니다. 이것은 JSON을 사용하여 구성 할 수있는 Serilog 또는 NLOG와 같은 제공자를 사용할 때 특히 유리합니다 [7].
5. 공급 업체 잠금 장치 회피 : Microsoft.extensions와 같은 추상화 계층을 사용하여 개발자는 코드를 특정 로깅 프레임 워크에 연결하지 않습니다. 이를 통해 상당한 코드 변경없이 다른 로깅 제공 업체간에 더 쉽게 전환하여 공급 업체 잠금 장치를 줄이고 프로젝트 유연성을 높일 수 있습니다 [9].
6. 확장 성 및 성능 : Microsoft.extensions.logging은 고성능 로깅 시나리오를 효율적으로 처리하도록 설계되었습니다. 비동기 로깅을 지원하고 다양한 환경에 최적화 될 수 있으므로 대규모 응용 프로그램에 적합합니다 [9].
요약하면, Microsoft.extensions.logging은 의존성 주입 및 다양한 로깅 제공자와 잘 통합되는 유연하고 확장 가능하며 널리 지원되는 로깅 솔루션을 제공하므로 많은 개발 시나리오에 대한 MVVMCross의 이전 로깅 시스템보다 우수한 선택이됩니다.
인용 :[1] https://developer.vonage.com/en/blog/adaptive-library-logging-with-microsoft-extensions-logging-dr
[2] https://www.mvvmcross.com/documentation/fundamentals/logging-new
[3] https://stackoverflow.com/questions/46483019/logging-from-ctatic-members-with-microsoft-extensions-logging
[4] https://learn.microsoft.com/en-us/ef/core/logging-events-diagnostics/extensions-logging
[5] https://www.mvvmcross.com/documentation/upgrading/upgrading-to-mvvmcross-60
[6] https://stackoverflow.com/questions/42356802/how-microsoft-extensions-logging-work-for-full-net-framework
[7] https://stackoverflow.com/questions/58209076/microsoft-extensions-logging-vs-nlog
[8] https://stackoverflow.com/questions/68075159/mvvm-cross-logging-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