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

zoh*_*har 3 iphone logging

有没有办法从iPhone设备读取应用程序日志?类似于Android的LogCat?

Fra*_*ano 25

正如Zoul所说,你可以在组织者中获得它们.但在此之前,您应该告诉应用程序将日志存储在Documents文件夹中.这样,当您在管理器中时,提取应用程序数据,您将在那里找到日志.

现在,为了告诉您的应用将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);
Run Code Online (Sandbox Code Playgroud)

最后一句是实际重定向输出的那一句.

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

你不知道如何提取应用程序数据吗?在这里你会发现.

我希望它可以帮助你.


Bab*_*yan 8

如果您使用的是 Linux,请安装libimobiledevice,将 iPhone 连接到计算机并运行idevicesyslog | grep <your app name>. 这将向您显示来自语句的所有调试信息和日志NSLog,就像 Android 中的 LogCat 一样。这种方法的优点:

  1. 为了使日志可用,您的应用程序不会发生崩溃
  2. 如果您删除了,它可以显示所有进程的日志,而不仅仅是您的应用程序grep
  3. Linux 工具的完整过滤功能(如grep可用)