Nic*_*liu 0 c# logging mvvmcross xamarin
我正在尝试实现我自己的日志提供程序。
Setup.cs 包含:
protected override MvxLogProviderType GetDefaultLogProviderType() => MvxLogProviderType.None;
protected override IMvxLogProvider CreateLogProvider()
{
var logger = new Logger();
return base.CreateLogProvider();
}
Run Code Online (Sandbox Code Playgroud)
记录器
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;
}
}
Run Code Online (Sandbox Code Playgroud)
当 IoC 尝试解决依赖关系时,它会与 ViewModel 构造函数一起崩溃。
错误信息:
创建 eOrder.ViewModel.ActivitiesViewModel 时无法解析类型为 IMvxLog 的参数日志的参数
也许我不需要覆盖MvxLogProviderType.None?
您将 base 返回,CreateLogProvider()并且由于您将 设置GetDefaultLogProviderType为None,因此将返回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();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1351 次 |
| 最近记录: |