【问题标题】:os_log Debug & Release Buildsos_log 调试和发布版本
【发布时间】:2021-02-10 11:10:16
【问题描述】:

我在 OS_Log 中使用了以下辅助方法,但我不确定是否有必要。

我想在我的 Debug 版本中记录内容,但不是(必须)在我的 Release 版本中。

我对编译器是否在发布版本中删除 os_log 语句感到困惑

public func DLog(_ string: String, subsystem: OSLog, type: OSLogType) {
  #if DEBUG
  os_log("%{PUBLIC}@", log: subsystem, type: type, string)
  #endif
}

我可以直接使用它并为发布版本剥离日志吗?

os_log("%{PUBLIC}@", log: subsystem, type: type, string)

我很困惑……

【问题讨论】:

    标签: swift logging oslog


    【解决方案1】:

    不,不会在 Release 中删除日志。 OSLogType 只是描述了Console.app 中要过滤的消息类型,debug 类型的消息仍将记录在生产环境中。

    在方案中禁用操作系统登录的正确方法是编辑Release 方案本身:

    OS_ACTIVITY_MODE 环境变量设置为disable 方案,那么您将不会在控制台中看到您的应用的任何日志。

    虽然这不适用于已存档的应用程序,但无论如何您都不应该真正禁用登录生产。如果你真的想要,在这种情况下可以使用预处理器指令。

    【讨论】:

      猜你喜欢
      • 2018-11-13
      • 2010-10-27
      • 2020-08-02
      • 1970-01-01
      • 2016-07-11
      • 2011-01-30
      • 1970-01-01
      相关资源
      最近更新 更多