1

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

我想在我的调试版本中记录东西,但不是(必须)在我的发布版本中。

我对编译器是否在 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)

我很困惑...

4

1 回答 1

1

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

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

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

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

于 2021-02-10T11:36:59.993 回答