MVVMCross 8에서는 벌목 시스템이 상당한 변화가 이루어졌습니다. 주요 변경 사항은 다음과 같습니다.
1. Microsoft.extensions.logging으로 전환 : MVVMCross 8은 사용자 정의 로깅 인터페이스 (`IMVXLOG`)를 포기하고`Microsoft.extensions.Logging 'Framework를 채택했습니다. 이 변경은 안정적이고 널리 지원되는 API를 제공하여 Serilog [1] [10]와 같은 다양한 타사 로깅 제공 업체와 쉽게 통합 할 수 있습니다.
2. 반사 종속성 제거 : 이전 버전과 달리 MVVMCross 8은 반사를 통해 타사 제공 업체에 직접 의존하지 않습니다. 대신, viewmodels, 서비스 및 리포지토리와 같은 클래스에 주입 될 수있는 'Ilogger'및 'iloggerfactory'인터페이스를 사용하여 로깅을 관리합니다 [1].
3. 구현 요구 사항 : 사용자는 이제 자체 'MVXSetUp'파생 상품을 명시 적으로 구현하고`CreateLogProvider '및'CreateLogFactory '인 두 가지 로깅 관련 방법을 재정의해야합니다. 이것은 기본 구현이 제공된 이전 버전의 변화입니다 [4] [10].
4. 타사 제공 업체와의 사용자 정의 : 사용자는 Serilog와 같은 타사 제공 업체를 설치하여 로깅을 사용자 정의 할 수 있습니다. 여기에는 Serilog 또는 기타 공급자를 구성하기 위해`setup.cs` 파일에서 'createLogProvider'및 'createLogFactory'메소드를 구현하는 것이 포함됩니다 [1] [4].
5. 스코프 로깅 : 새로운 로깅 시스템을 통해 스코어링 된 로깅을 허용하며,이 로그는 로그를 특정 컨텍스트 (예 : 뷰 모델)와 자동으로 연결합니다. 이를 통해 소스를 기반으로 로그를 더 쉽게 필터링 할 수 있습니다 [1].
전반적으로 이러한 변화는 MVMCross 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/