iPhone:如何从设备中读取应用程序日志

10
有没有一种方法可以从iPhone设备读取应用程序日志?类似于Android的LogCat?

将此问题链接到这个 - QED
4个回答

29

正如Zoul所说,你可以在组织器中获取它们。但在此之前,你应该告诉你的应用程序将日志存储在例如“文档”文件夹中。这样当你在组织器中提取应用程序数据时,你就会在那里找到日志。

现在,为了让你的应用程序将NSLog()输出重定向到文件中,你应该像这样做:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);

NSString *documentsDirectory = [paths objectAtIndex:0];

NSString *fileName =[NSString stringWithFormat:@"%@.log",[NSDate date]];

NSString *logFilePath = [documentsDirectory stringByAppendingPathComponent:fileName];

freopen([logFilePath cStringUsingEncoding:NSASCIIStringEncoding],"a+",stderr);

最后一句话实际上是将输出重定向的语句。

因此,一旦完成,您的应用程序日志将存储在应用程序文档文件夹中。

您不知道如何提取应用程序数据吗?在这里你会找到答案。

希望能对你有所帮助。


如果这对你有帮助,投一票支持一下会很好。谢谢。 - Fran Sevillano
这是一个很好的解决方案,正是我们开发需要连接到另一个设备并仍然允许我们收集调试日志的应用程序所需要的。感谢Francisco。 - David Potter

7
如果您使用Linux操作系统,请安装libimobiledevice,将您的iPhone连接到电脑上并运行idevicesyslog | grep <your app name>。这将显示来自NSLog语句的所有调试信息和日志,就像在Android中的LogCat一样。这种方法的优点是:
  1. 您的应用程序不需要崩溃以便可用日志
  2. 它可以显示所有进程的日志,而不仅仅是您的应用程序(如果您放弃grep
  3. 拥有Linux工具如grep的完整过滤功能

4
您可以使用Mac上的“控制台”应用程序查看设备的日志。

4

从连接到您的计算机的设备上?打开Xcode组织器(Cmd+Shift+O),单击设备,选择“设备日志”选项卡。


组织者只显示崩溃日志,而我正在寻找应用程序内部编写的常规日志。 - zohar
2
组织者也显示控制台,其中包括NSLog输出。设备必须进行配置并启用设置->开发者设置->日志记录。 - Michael

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