Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 操作系统日志调试&;发布版本_Swift_Logging_Oslog - Fatal编程技术网

Swift 操作系统日志调试&;发布版本

Swift 操作系统日志调试&;发布版本,swift,logging,oslog,Swift,Logging,Oslog,我正在对OS_日志使用以下帮助器方法,但我不确定是否有必要 我想在调试版本中记录事情,但不一定要在发布版本中记录 我不清楚编译器是否会删除发布版本中的os_日志语句 public func DLog(_ string: String, subsystem: OSLog, type: OSLogType) { #if DEBUG os_log("%{PUBLIC}@", log: subsystem, type: type, string) #endif } 我是

我正在对OS_日志使用以下帮助器方法,但我不确定是否有必要

我想在调试版本中记录事情,但不一定要在发布版本中记录

我不清楚编译器是否会删除发布版本中的os_日志语句

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)

我很困惑…

不,日志在发布时不会被剥离。
OSLogType
只描述了要在
控制台中过滤的消息类型。app
debug
类型消息仍将记录在生产中

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

在您的应用程序中将
OS\u ACTIVITY\u MODE
环境变量设置为
disable
方案,则您将不会在控制台中看到应用程序的任何日志

不过,这对存档的应用程序不起作用,但无论如何,您都不应该真正禁用生产登录。如果您真的愿意,在这种情况下可以使用预处理器指令