在Xamarin iOS上的日志框架

15

Xamarin.iOS 的日志记录情况如何(使用 Xamarin Studio Indie)。

我尝试过使用 NLog,但它引用了 System.ServiceModel - 因此 Xamarin 抱怨我需要商业版(不想花那么多钱只是为了使用 NLog!)。

因为其中引用了在 Xamarin/MonoTouch 中不存在的 System.Configuration 类,所以 log4net 也无法工作。

我觉得很奇怪,既没有在 XS 中提供日志记录解决方案,也没有来自主要日志记录软件的支持。

我错过了什么吗?

4个回答

13

iOS的日志记录和桌面/服务器应用程序的日志记录有些不同,因为用户没有(简单)的方法来检索日志。

不过有多种选择:

  1. 用于自己的调试目的:

    使用 System.Console.WriteLine()。这相当于Obj-C中的 NSLog

  2. 用于远程日志记录:

    使用第三方框架,例如:

    • TestFlight SDK(用于beta测试,但也有适用于生产版本构建的私有beta)

    • Crashlytics

    一些解决方案甚至提供远程日志记录,因此您可以访问崩溃报告和设备日志。

    不用说,您可以从Xamarin.iOS使用大多数这些框架,请查看https://github.com/mono/monotouch-bindings


对于远程日志记录,Xamarin Insights是一个不错的选择:http://developer.xamarin.com/guides/cross-platform/insights/application/#Logging_Reports_to_Xamarin_Insights - pauldendulk

6

http://developer.xamarin.com/guides/cross-platform/insights/application/#Logging_Reports_to_Xamarin_Insights - pauldendulk

3

我分叉了Apache log4net并添加了一些必要的附加程序,以使其能够在MonoTouch下编译。 由于它没有经过完全测试,因此请预期存在错误,但这是一个开端。

monotouch-log4net @ GitHub


2
Crittercism 刚刚发布了 Xamarin 官方的崩溃报告和日志框架(完全透明:我是共同创始人之一)。它完全支持自动记录未处理的异常和信号(例如 SIGSEGV 信号通过让 Mono 运行时处理并将完整的堆栈跟踪传递给 Crittercism 来进行优雅处理)。您还可以使用已处理的异常日志将任何日志发送到 Crittercism。您可以从 Xamarin 商店下载它:。

http://components.xamarin.com/view/crittercism


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接