首页 > 解决方案 > 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() 它可以工作,所以我假设我必须配置控制台或类似的东西?

标签: xamarin

解决方案


您正在使用的Serilog.Sinks.Console接收器在您的平台上不可用。相反,就像 Jason 在评论中建议的那样,您将需要使用不同的接收器。

根据您实际想要实现的目标,您可能希望陷入

  • 文件
  • 调试输出
  • 设备日志

所有这些场景都存在接收器,对于更复杂的场景也有接收器,您希望将日志流式传输到外部服务,例如 Elastic Search 或其他一些服务。

但是,控制台并非在所有平台上都可用,您应该选择更合适的接收器。


推荐阅读