gpt4 book ai didi

ios - Apple 推荐的 Swift 日志记录方法

转载 作者:IT王子 更新时间:2023-10-29 05:20:52 28 4
gpt4 key购买 nike

注意事项:

这不是链接问题的副本

目标:

  • 我不是在寻找 printNSLog 的区别
  • 事实上我不想使用它们中的任何一个(目前使用print)
  • 我正在寻找 Apple 推荐的方法,只是似乎找不到命令/文档,我只知道它存在。

目前的实现:

目前我正在使用带有一些全局函数的print语句

问题

  1. 推荐的错误处理方法是什么(我不想使用 NSLog,因为它们会写入设备的控制台)
  2. 这仅用于开发期间的调试目的

最佳答案

看看os_log .它提供了您正在寻找的所有东西。

新内容

也越用越好用Logger API 从 iOS14 开始可用。参见 here还有

从 iOS15 开始,您还可以使用 OSLogStore 检索日志.参见 here .

另见 Acquiring Crash Reports and Diagnostic Logs


免责声明:

我强烈建议您查看 this thread from Swift forums .长话短说

尽管它是 Apple 的推荐,但由于对检索日志的担忧,它的使用存在争议:

  • 检索日志不是一个简单的过程。其实很难。参见 here
  • 对于大多数用户来说,日志文件可以是 100-300 Mbs。这使得发送变得困难。

它非常适合在开发期间进行调试,但您的应用用户很难触发、检索和发送。


示例:

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)

一些很好的引用:

os_log 如此强大的原因在于:

  • 提供不同的日志级别
  • 有不同的类别
  • 私有(private)公共(public) 日志
  • 它重量轻,由 Apple 打造。不需要 pod
  • 与仅在调试期间可用的 print 不同,os_log 可用于查看已发布的应用程序(实时)并查看控制台应用程序中的日志。

enter image description here

这对于观察不受 greedy Xcode 影响的应用程序生命周期变化非常有用即,如果您在连接到 Xcode 时进行调试,则 Xcode 不允许将应用程序置于暂停状态...


注意 os_log 仅适用于+iOS10

还有来自 WWDC 2018 和 2019 的新视频,但更关注 os_signpost。见:

关于ios - Apple 推荐的 Swift 日志记录方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50728431/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com