Skip to content

Commit 02ab5ca

Browse files
committed
Update signpost API
1 parent d480527 commit 02ab5ca

2 files changed

Lines changed: 39 additions & 6 deletions

File tree

Pro

Submodule Pro updated from 9546042 to 3d7a24e

Tool/Sources/Logger/Logger.swift

Lines changed: 38 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -99,14 +99,47 @@ public final class Logger {
9999
function: function
100100
)
101101
}
102-
103-
public func signpost(
104-
_ type: OSSignpostType,
102+
103+
public func signpostBegin(
105104
name: StaticString,
106105
file: StaticString = #file,
107106
line: UInt = #line,
108107
function: StaticString = #function
109-
) {
110-
os_signpost(type, log: osLog, name: name)
108+
) -> Signposter {
109+
let poster = OSSignposter(logHandle: osLog)
110+
let id = poster.makeSignpostID()
111+
let state = poster.beginInterval(name, id: id)
112+
return .init(log: osLog, id: id, name: name, signposter: poster, beginState: state)
113+
}
114+
115+
public struct Signposter {
116+
let log: OSLog
117+
let id: OSSignpostID
118+
let name: StaticString
119+
let signposter: OSSignposter
120+
let state: OSSignpostIntervalState
121+
122+
init(
123+
log: OSLog,
124+
id: OSSignpostID,
125+
name: StaticString,
126+
signposter: OSSignposter,
127+
beginState: OSSignpostIntervalState
128+
) {
129+
self.id = id
130+
self.log = log
131+
self.name = name
132+
self.signposter = signposter
133+
state = beginState
134+
}
135+
136+
public func end() {
137+
signposter.endInterval(name, state)
138+
}
139+
140+
public func event(_ text: String) {
141+
signposter.emitEvent(name, id: id, "\(text, privacy: .public)")
142+
}
111143
}
112144
}
145+

0 commit comments

Comments
 (0)