我正在开发一个基于支持活动/范围的统一日志系统的记录器,我发现我fault
的任何活动都没有捕获具有级别类型的消息:
var os_state = os_activity_scope_state_s()
let os_activity = _os_activity_create(dso, strdup("My Activity"), OS_ACTIVITY_CURRENT, OS_ACTIVITY_FLAG_DEFAULT)
os_activity_scope_enter(os_activity, &os_state)
os_log("fault message", type: .fault) // "My Activity" don't have one
os_activity_scope_leave(&os_state)
后来我找到了我的消息的活动:
16:04:52.978940+0300 libsystem_trace.dylib 0 Activity for state dumps
所以系统为这种消息创建了一个特殊的活动(在 Mac/iOS 上测试)。
但从文档(https://developer.apple.com/documentation/os/oslogtype/2320725-fault):
如果存在活动对象,则此级别的日志记录会捕获整个流程链的信息。
这与error
为自定义活动捕获的日志级别相同。
是已知问题还是预期行为?我找不到任何有关的信息。