os_log调试和发布版本构建

3

我正在使用以下帮助方法与OS_Log一起使用,但我不确定是否必要。

我希望在我的Debug版本中记录日志,但不一定要在Release版本中(记录日志)。

我不确定编译器是否会在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)

我感到困惑...

1个回答

1
不,日志在发布版中不会被剥离。 OSLogType 只是描述要在 Console.app 中过滤的消息类型,debug 类型的消息仍将在生产环境中记录日志。
禁用方案中的 OS 日志记录的正确方法是编辑方案本身的 Release

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

这对于已归档的应用程序不起作用,但是在生产环境中永远不应该真正禁用日志记录。 如果您确实想要这样做,在这种情况下可以使用预处理器指令。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接