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

5 logging ios

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

如果我的应用程序中的任何内容无法正常工作,用户可以从应用程序内部发送反馈。通过反馈,我想将记录的消息附加到反馈中,以便我可以了解发生了什么。

有没有办法以编程方式获取我的应用程序记录的所有消息?有没有办法以编程方式获取存储在文件系统中的日志文件?

Pra*_*tel 1

您想要获得的原木非常坚硬并且受到保护。

我有一个代码片段,您可以使用它将所有 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);
Run Code Online (Sandbox Code Playgroud)