我正在使用https://developer.apple.com/documentation/os/logging中定义的方法在iOS应用中记录消息。如何以编程方式读取/访问记录的消息?
如果我的应用程序中的任何内容不起作用,则用户可以从应用程序内部发送反馈。有了反馈,我想将记录的消息附加到反馈上,以便找出发生了什么。
是否可以通过编程方式获取应用程序记录的所有消息?有什么办法可以通过编程方式获取存储在文件系统中的日志文件?
答案 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);