2017-11-30 2 views
0

내 로그 공급자를 구현하려고합니다.MvvmCross 사용자 지정 로그 공급자

Setup.cs에는 다음이 포함 IOC의 종속성을 해결하려고 할 때

 protected override MvxLogProviderType GetDefaultLogProviderType() => 
              MvxLogProviderType.None; 

    protected override IMvxLogProvider CreateLogProvider() 
    { 
     var logger = new Logger(); 
     return base.CreateLogProvider(); 
    }   

Logger.cs

 public class Logger : IMvxLog 
    { 
     public bool Log(MvxLogLevel logLevel, Func<string> messageFunc, 
     Exception exception = null, params object[] formatParameters) 
     { 
     var client = new HttpClient(); 
     var url = new Uri("https://jsonplaceholder.typicode.com/posts/1"); 
     client.PostAsync(url,null); 
     return true; 
    } 
} 

그것은 뷰 모델 생성자하는 int 충돌합니다.

오류 메시지 : 메시지 = 어쩌면 내가 MvxLogProviderType.None를 오버라이드 (override) 할 필요가 없습니다

을 "eOrder.ViewModel.ActivitiesViewModel를 만들 때 유형 IMvxLog 의 매개 변수 로그의 매개 변수를 해결하기 위해 실패"?

답변

1

CreateLogProvider()으로 기본을 반환하고 GetDefaultLogProviderTypeNone으로 설정하면 null을 반환합니다.

두 번째 문제는 IMvxLog을 구현하고 IMvxLogProvider이 아니라는 것입니다. 그 중 하나를 구현하고 기본 대신 설치 프로그램에 반환하십시오.

더 많은 정보는에서 찾을 수 있습니다 https://www.mvvmcross.com/documentation/fundamentals/logging#customize-the-log-provider

하지 않는 것이 Serilog을 사용하고 정적 인스턴스에 액세스가 사용자 정의 샘플 코드.

protected override IMvxLogProvider CreateLogProvider() 
{ 
    Log.Logger = new LoggerConfiguration() 
       .MinimumLevel.Debug() 
       .WriteTo.LiterateConsole() 
       .WriteTo.AndroidLog() 
       .CreateLogger(); 
    return base.CreateLogProvider(); 
} 
관련 문제