主要问题是:如何在基于Xamarin的移动应用程序中集成Logentries?以下两种方式:Serilog和log4net。
Logentries本身支持Android, iOS, WP但不支持使用Xamarin代理这些API。 Serilog是Logentries API的优雅C#包装器,但在同一项目中安装所有需要的组件以及Xamarin的组件时出现问题。 Visual Studio用作IDE和NuGet作为包管理器。我认为应该使用NuGet安装的软件包是Serilog,Serilog.Mobile,Serilog.Sinks.Logentries。 使用Xamarin创建Android应用程序时,正在使用Mono.Android模块。 Serilog与Mono.Android完美共存,但Serilog.Mobile和Serilog.Sinks.Logentries并不是:
错误:无法安装软件包' Serilog.Sinks.Logentries 1.5.8'。您 正在尝试将此软件包安装到目标项目中 ' Xamarin.iOS ,版本= v1.0',但该包不包含任何内容 程序集引用或与之兼容的内容文件 框架。有关更多信息,请与软件包作者联系。
Serilog.Mobile的错误消息相同。
使用Xamarin.iOS时,唯一不兼容的模块恰好是Serilog.Sinks.Logentries:
错误:无法安装软件包' Serilog.Sinks.Logentries 1.5.8'。您 正在尝试将此软件包安装到目标项目中 ' MonoAndroid ,版本= v6.0',但该套餐不包含任何内容 程序集引用或与之兼容的内容文件 框架。有关更多信息,请与软件包作者联系。
看到有Xamarin Serilog "sink"。由创造了Logentries的同一个人写的。一。从我看来它只是移植Serilog库并为Android的Log类和iOS'提供便利记录器。的NSLog:
ILogger androidLogger = new Serilog.LoggerConfiguration().WriteTo.AndroidLog().CreateLogger();
ILogger iosLogger = new Serilog.LoggerConfiguration().WriteTo.NSLog().CreateLogger();
所以第一个问题是Serilog是否即将用于基于Xamarin的应用程序怎么会发生这种情况?
log4net是Logentries C# port的另一个选项,但可能不再适用于Xamarin,而是适用于桌面应用程序。只是调查它,显而易见的是,iOS有一些ports。
如果您可以向我推荐与Xamarin同时使用Logentries的正确方法,那就太棒了。
答案 0 :(得分:2)
听起来你需要下载Logentries接收器的源代码并自己为Xamarin重新编译它。 (Serilog对Xamarin平台的支持很少,因为无需购买许可证就难以获得工具/运行构建。如果您可以对https://github.com/serilog/serilog-sinks-logentries存储库进行改进,那么支持Xamarin支持的公关将毫无疑问在那里欢迎。)