笔记:
这不是链接问题的重复
目标:
- 我不是在找一个
print
vsNSLog
差异 - 事实上我不想使用它们中的任何一个(目前使用
print
) - 我正在寻找Apple推荐的方式,只是似乎找不到命令/文档,我只知道它存在。
目前的实施:
目前我正在使用print
带有一些全局函数的语句
问题
- 处理错误的推荐方式/方法是什么(我不想使用 NSLog,因为它们会写入设备的控制台)
- 这仅用于开发期间的调试目的
这不是链接问题的重复
print
vsNSLog
差异print
)目前我正在使用print
带有一些全局函数的语句
看看os_log
。它提供了您正在寻找的所有东西。
自 iOS14 起提供更易于使用的Logger API。也见这里
从 iOS15 开始,您还可以使用OSLogStore
. 看这里
免责声明:
我强烈建议您从 Swift 论坛中查看此主题。tl;博士
尽管它是 Apple 的建议,但由于对检索日志的担忧,它的使用存在争议:
它非常适合在开发过程中进行调试,但很难由您的应用用户触发、检索和发送。
例子:
let customLog = OSLog(subsystem: "com.your_company.your_subsystem_name", category: "Category")
os_log("This is info that may be helpful during development or debugging.", log: customLog, type: .debug)
一些很好的参考:
NSLog
已弃用的内容以及使用新 os_log
库的一些好处。之所以os_log
如此强大,是因为:
private
和public
日志print
仅在调试期间可用不同,os_log
可用于查看已发布的应用程序(实时)并查看控制台应用程序中的日志。这对于观察应用程序生命周期的变化非常有用,即如果您在连接到 Xcode 时正在调试,那么 Xcode 不允许应用程序处于挂起状态......
注: os_log
仅适用于+iOS10
WWDC 2018 和 2019 也有新视频,但更关注os_signpost
. 看: