使用Apple的统一日志记录API os_log时,是否需要使用DispatchQueue.async或在内部使用它会处理后台执行的事情以及消息的排队?
答案 0 :(得分:1)
您不应该。
Apple建议统一日志记录系统已经为您处理了。 WWDC 2016中Session 721 - Unified Logging and Activity Tracing的引用:
我们要做的另一件事非常非常重要,就是我们推迟了很多工作。正如我们在显示信息时(而不是在我们收集信息时)所做的任何事情一样,我们尝试推迟到这一点。这是避免观察者影响的关键方法之一。
在谈话中他们没有提到您应该从后台线程或队列中登录。根据最佳做法:
避免为
os_log*
API创建包装函数
(我的意思是避免创建在DispatchQueue上调用os_log
的包装器)
避免在紧凑的代码循环中登录
(统一日志的设计轻巧,但请不要过分强调)