Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iPhone:如何从设备读取应用程序日志_Iphone_Logging - Fatal编程技术网

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

iPhone:如何从设备读取应用程序日志,iphone,logging,Iphone,Logging,有没有办法从iPhone设备读取应用程序日志?与Android的LogCat类似的东西?来自连接到您机器的设备?打开Xcode管理器(Cmd+Shift+O),单击设备,选择设备日志选项卡。正如Zoul所说,您可以在管理器中获得它们。但在此之前,您应该告诉您的应用程序将日志存储在Documents文件夹中。这样,当您在Organizer中时,提取应用程序数据,您将在那里找到日志 现在,为了告诉应用程序将NSLog()输出重定向到文件,您应该执行以下操作: NSArray *paths = NSS

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

来自连接到您机器的设备?打开Xcode管理器(Cmd+Shift+O),单击设备,选择设备日志选项卡。

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

现在,为了告诉应用程序将
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);
最后一句话实际上重定向了输出

因此,一旦完成此操作,应用程序日志将存储在应用程序的documents文件夹中

您不知道如何提取应用程序数据吗?你会发现的


我希望它能帮助您。

您可以使用Mac中的“Console”应用程序查看设备上的日志。

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

  • 您的应用程序没有崩溃以便日志可用
  • 如果您删除
    grep
  • 提供了像
    grep
    这样的Linux工具的完整过滤功能

  • Organizer只显示崩溃日志,而我正在查找常规日志,在appOrganizer中写入的日志还显示控制台,控制台具有NSLog输出。必须对设备进行设置,并启用“设置->开发人员设置->日志记录”。如果对您有帮助,请您投票支持。感谢这是一个很好的解决方案,这正是我们开发一个需要连接到另一个设备并且仍然允许我们收集调试日志的应用程序所需要的。谢谢Francisco。将此问题链接到[此][1]。[1]: