TracingActivity provides Apples Activity Tracing as part of Unified Logging for pure Swift applications.
TracingActivity provides Apples Activity Tracing as part of Unified Logging for pure Swift applications.
Creation of a tracing activity can fail, but all blocks will always be executed.
The return values will inform if the code was executed inside the activity (success = true) or outside (in case the activity could not be created).
Nesting of activities is encouraged for sub-tasks.
The Swift Package Manager is a tool for automating the distribution of Swift code and is integrated into the swift
compiler.
Add the Package URL https://github.com/matis-schotte/TracingActivity.git
in Xcodes project viewer.
Adding it to another Package as a dependency is as easy as adding it to the dependencies
value of your Package.swift
.
dependencies: [
.package(url: "https://github.com/matis-schotte/TracingActivity.git", from: "0.1.0")
]
Block-based activity tracing once:
_ = TracingActivity.initiate("Activity") {
// ... os_log stuff
}
Activity tracing for multiple blocks:
let activity: TracingActivity? = TracingActivity("Activity")
_ = TracingActivity.apply(activity) {
// ... os_log stuff
}
Scope-based activity tracing:
let activity: TracingActivity? = TracingActivity("Activity2")
var scope = activity?.enter()
// ... os_log stuff
defer {
scope?.leave()
}
swift package generate-xcodeproj
, helps support Xcode Server, too)TracingActivity is available under the Apache-2.0 license. See the LICENSE file for more info.
Matis Schotte, dm26f1cab8aa26@ungeord.net