xamarin - xamarin 项目中的 Serilog 入门
问题描述
我正在尝试为 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() 它可以工作,所以我假设我必须配置控制台或类似的东西?
解决方案
您正在使用的Serilog.Sinks.Console
接收器在您的平台上不可用。相反,就像 Jason 在评论中建议的那样,您将需要使用不同的接收器。
根据您实际想要实现的目标,您可能希望陷入
- 文件
- 调试输出
- 设备日志
所有这些场景都存在接收器,对于更复杂的场景也有接收器,您希望将日志流式传输到外部服务,例如 Elastic Search 或其他一些服务。
但是,控制台并非在所有平台上都可用,您应该选择更合适的接收器。
推荐阅读
- node.js - 过滤 fromdate 和 todate MongoDB
- python-3.x - 从完整的 xpath 生成 xml
- assemblyscript - Webassembly如何获取f64的指针或引用
- node.js - 如何解决 Heroku 上的部署“应用程序错误”?
- xml - 如何使 XML 元素与结束元素不同?
- react-native - 在 React-Native 中使用 Jest 测试模拟端点方法
- java - 如何在 ant 命令中传递空值,以便替换 build.xml 文件中的属性值
- typescript - 如何在 Typescript 中通过回调函数的参数类型声明类型?
- python - 实时多图的 Tkinter GUI
- sql - 向克隆的 SQL 表插入数据失败