如何以编程方式在iOS应用中获取日志消息?

时间:2019-01-07 09:52:52

标签: ios logging

我正在使用https://developer.apple.com/documentation/os/logging中定义的方法在iOS应用中记录消息。如何以编程方式读取/访问记录的消息?

如果我的应用程序中的任何内容不起作用,则用户可以从应用程序内部发送反馈。有了反馈,我想将记录的消息附加到反馈上,以便找出发生了什么。

是否可以通过编程方式获取应用程序记录的所有消息?有什么办法可以通过编程方式获取存储在文件系统中的日志文件?

1 个答案:

答案 0 :(得分:0)

您想要获取的日志,它非常坚固而且受保护。

我有一个代码段,您可以使用其将所有NSLog数据写入文件中。

这会将所有控制台日志保存到一个文件中,然后当您的用户从API向您发送反馈时您就可以获取该文件。

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);