在 iPhone 应用程序中记录错误/事件的最佳做法是什么?我不是在谈论调试,而是在发布应用程序之后。我的意思是,当应用程序以发布模式(而非调试模式)运行时,我想收集错误/事件日志。(当需要时,我可以要求用户自愿将文件发送到我的服务器进行分析。)
(如果 NSLog 没有在调试中运行,它是否有任何影响?如果是,它会写入哪里?以及,如何以编程方式清除任何内容?)
我在这里发布了一个类似问题的答案:Include custom data into iOS crash dumps
NSLog 不应该用于生产应用程序中的详细日志记录,因为它会减慢您的应用程序。NSLog 每次调用时都会打开与系统记录器的连接,并同步执行此操作,因此会阻塞当前线程。
而是使用异步记录的CocoaLumberjack,它非常快,并且提供了日志级别的支持,甚至可以在运行时通过一些额外的努力进行更改(参见它的 wiki 页面)。此外,它还支持多个输出目的地,如文件、控制台或 Xcode 控制台等。
另一个很棒的日志库是NSLogger,它提供了一个 Mac 应用程序来通过 Bonjour 流式传输日志数据。这两个库可以一起使用,这意味着通过使用此连接器将日志数据从 CocoaLumberjack 流式传输到 NSLogger Mac 应用程序:https ://github.com/steipete/NSLogger-CocoaLumberjack-connector