我正在尝试为xamarin项目设置日志系统,我有以下代码
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Debug()
.WriteTo.Console()
.CreateLogger();
Log.Information("Hello, world!");
int a = 10, b = 0;
try
{
Log.Debug("Dividing {A} by {B}", a, b);
Console.WriteLine(a / b);
}
catch (Exception ex)
{
Log.Error(ex, "Something went wrong");
}
finally
{
Log.CloseAndFlush();
}
我在App构造函数中编写了这个代码,以便首先对其进行测试,但它抛出了一个运行时错误,该错误显示
System.PlatformNotSupportedException:'在此平台上不支持该操作。'
如果我删除了.WriteTo.Console(),它就可以工作了,所以我假设我必须配置一个控制台或类似的东西?
2条答案
按热度按时间66bbxpm51#
您正在使用的
Serilog.Sinks.Console
接收器在您的平台上不可用。相反,就像Jason在评论中建议的那样,您将需要使用不同的接收器。根据您实际想要实现的目标,您可能希望陷入
所有这些场景都有接收器,对于更复杂的场景也有接收器,在这些场景中,您希望将日志流传输到外部服务(如Elastic Search或其他服务)。
但是,并非所有 * 平台都提供Console,您应该选择更合适的接收器。
pbgvytdp2#
相关性
1.从NuGet安装
Serilog.Sinks.Xamarin
(GitHub)1.从NuGet安装
IOFlextils
在本机项目中配置Serilog
Xamarin.IOS中的一个选项
Xamarin.安卓系统
大楼
因此,假设您希望实现一些将日志记录到本地日志控制台以及sqlite数据库的功能,您可能希望通过各种后台工作线程远程访问日志。
常量. cs
日志. cs
日志数据库. cs
Xamarin.安卓主活动. cs