TracingActivity 为纯 Swift 应用程序提供 Apple 的 Activity Tracing 功能,作为统一日志记录的一部分。创建 tracing activity 可能会失败,但所有代码块都将始终执行。返回值将告知代码是在 activity 内部(成功 = true)还是外部(在 activity 无法创建的情况下)执行的。 鼓励嵌套 activity 以实现子任务。
Swift Package Manager 是一种自动化 Swift 代码分发的工具,并已集成到 swift
编译器中。
在 Xcode 的项目查看器中添加 Package URL https://github.com/matis-schotte/TracingActivity.git
。将其作为依赖项添加到另一个 Package 中就像将其添加到 Package.swift
的 dependencies
值中一样简单。
dependencies: [
.package(url: "https://github.com/matis-schotte/TracingActivity.git", from: "0.1.0")
]
基于代码块的 activity tracing(一次)
_ = TracingActivity.initiate("Activity") {
// ... os_log stuff
}
用于多个代码块的 Activity Tracing
let activity: TracingActivity? = TracingActivity("Activity")
_ = TracingActivity.apply(activity) {
// ... os_log stuff
}
基于作用域的 Activity Tracing
let activity: TracingActivity? = TracingActivity("Activity2")
var scope = activity?.enter()
// ... os_log stuff
defer {
scope?.leave()
}
swift package generate-xcodeproj
,也有助于支持 Xcode Server)TracingActivity 在 Apache-2.0 许可证下可用。 有关更多信息,请参见 LICENSE 文件。
Matis Schotte, dm26f1cab8aa26@ungeord.net