使用Apple的统一日志记录os_log时,是否需要使用DispatchQueue.async?

时间:2019-06-30 22:03:04

标签: swift ios10

使用Apple的统一日志记录API os_log时,是否需要使用DispatchQueue.async或在内部使用它会处理后台执行的事情以及消息的排队?

1 个答案:

答案 0 :(得分:1)

您不应该。

Apple建议统一日志记录系统已经为您处理了。 WWDC 2016中Session 721 - Unified Logging and Activity Tracing的引用:

  

我们要做的另一件事非常非常重要,就是我们推迟了很多工作。正如我们在显示信息时(而不是在我们收集信息时)所做的任何事情一样,我们尝试推迟到这一点。这是避免观察者影响的关键方法之一。

在谈话中他们没有提到您应该从后台线程或队列中登录。根据最佳做法:

  

避免为os_log* API创建包装函数

(我的意思是避免创建在DispatchQueue上调用os_log的包装器)

  

避免在紧凑的代码循环中登录

(统一日志的设计轻巧,但请不要过分强调)