os_log 调试和发布版本

时间:2021-02-10 11:10:16

标签: swift logging oslog

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

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

我很困惑编译器是否删除了发布版本中的 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)

我很困惑...

1 个答案:

答案 0 :(得分:1)

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

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

<块引用>

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

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