我的应用程序如何以编程方式获取所有控制台日志?

时间:2019-04-26 10:40:03

标签: ios objective-c swift

我正在寻找以编程方式提取控制台中显示的所有应用程序日志的方法

我不希望只能看到它们,所以将xcode用作预览对我不起作用。

我想要的是我的用户能够随时将这些日志和反馈发送给我,因为应用处于测试阶段,普通用户的说明不足以在我端进行适当的调试。

所以,我想是iOS的logcat命令的类比,它以某种方式使用:

final Process process = Runtime.getRuntime().exec("logcat -d");
final InputStream inputStream = process.getInputStream();

...然后,在我的情况下,您可以将流操纵为需要执行的任何操作,以创建一个String对象,该对象将传递给我的日志服务。

include debug logs

我的调查中存在FAR ,我只能找到this选项,但是如果有更容易集成到Swift应用程序中的东西,我将不胜感激。

此外, os.log 模块用于记录日志,但是我找不到能够加载日志的选项。或者我对以下解释的理解发现HERE不够好:

使用控制台应用程序或log命令行工具查看和过滤日志消息。


编辑:

最终用户不应以任何方式与日志打扰,而不仅仅是在调试日志开关处于打开状态时单击提交按钮。

所以@matt否-这不是链接问题的重复项。 最终用户也不必下载其他内容即可向我提供自己的应用日志。

这是典型的用户体验杀手,甚至都不应该被视为链接文章的解决者。

1 个答案:

答案 0 :(得分:0)

到最后一点。该说明告诉您将手机连接到Mac,然后使用“控制台”应用程序(或命令行工具)提取控制台日志,例如https://support.apple.com/en-ie/guide/console/welcome/mac

您提供的第一个链接(使用ASL)是我所知道的唯一本地解决方案。另外2个选项是:

  1. 使用基于服务器/云的分析/事件跟踪系统记录每个用户的消息。如果有人发送问题,您可以搜索日志以查看发生了什么。 (不过请注意存储个人信息)。
  2. 您可以编写自己的包含字符串的类/函数,然后将其写入文本文件并将其记录到控制台。在开发过程中,您会在控制台中看到它,而在野外它将存储它。需要详细信息时,您可以阅读文本文件并上传。需要注意它变得太大。再次取决于个人存储数据的位置。

我一直使用选项1。有很多免费服务可以执行此操作,并且有很多解决方案可以通过发布应用程序来测试用户来提供。微软的AppCenter是一个,我相信它是免费的,除非您想要CI / CD