Skip to content

Commit 9904593

Browse files
committed
Logger: Pick up subsystem from #fileid instead of stacktrace hacking
1 parent 47fc83a commit 9904593

File tree

12 files changed

+33
-18
lines changed

12 files changed

+33
-18
lines changed

Sources/AlloPlace/PlaceServerApp.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import allonet2
44
import alloheadless
55
import Logging
66

7-
private var logger = Logger(label: "place.app")
7+
private var logger = Logger(labelSuffix: "place.app")
88

99
@main @MainActor
1010
struct PlaceServerApp: AsyncParsableCommand

Sources/AlloReality/SpatialAudioAttenuationSystem.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import Logging
66
// TODO: Better solution: Instead of setting audioListener, we should do the vision pro hack on macos as well!! That way, the spatial field uses real world coordinates without any kind of scaling or custom listener position or anything — it’s just a real spatial audio field with correct distances. We might need this attenuation system to do "audio hidden by wall" etc though...
77
public struct SpatialAudioAttenuationSystem: RealityKit.System
88
{
9-
let logger: Logger! = Logger(label: "spatialaudioattenuationsystem")
9+
let logger: Logger! = Logger(labelSuffix: "spatialaudioattenuationsystem")
1010

1111
public init(scene: Scene) {}
1212

Sources/AlloReality/SpatialAudioPlayer.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ public class SpatialAudioPlayer
2525
fileprivate var state: [MediaStreamId: SpatialAudioPlaybackState] = [:]
2626
var streamCancellables: Set<AnyCancellable> = []
2727
var listenerCancellables: Set<AnyCancellable> = []
28-
var logger: Logger! = Logger(label: "spatialaudioplayer")
28+
var logger: Logger! = Logger(labelSuffix: "spatialaudioplayer")
2929

3030
/// Construct a SpatialAudioPlayer which uses `mapper` to create audio related components and `client` to react to network events. Note: announce must have completed and avatar exist before instantiating this class.
3131
public init(mapper: RealityViewMapper, client: AlloUserClient, content: RealityViewContentProtocol, addon: ListenerAddon? = nil)
@@ -34,7 +34,7 @@ public class SpatialAudioPlayer
3434
self.client = client
3535
self.content = content
3636
self.addon = addon
37-
self.logger = Logger(label: "spatialaudioplayer", metadataProvider: Logger.MetadataProvider { [weak self] in
37+
self.logger = Logger(labelSuffix: "spatialaudioplayer", metadataProvider: Logger.MetadataProvider { [weak self] in
3838
guard let self, let cid = self.client.cid else { return [:] }
3939
return ["clientId": .stringConvertible(cid)]
4040
})

Sources/alloclient/UIWebRTCTransport.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ class UIWebRTCTransport: NSObject, Transport, LKRTCPeerConnectionDelegate, LKRTC
3030
private let offerAnswerConstraints = LKRTCMediaConstraints(mandatoryConstraints: [:], optionalConstraints: [:])
3131

3232
private let audioSessionActive = false
33-
private var logger = Logger(label: "transport.webrtc")
33+
private var logger = Logger(labelSuffix: "transport.webrtc")
3434

3535
public required init(
3636
with connectionOptions: TransportConnectionOptions,
@@ -214,7 +214,7 @@ class UIWebRTCTransport: NSObject, Transport, LKRTCPeerConnectionDelegate, LKRTC
214214
// Warning: LKRTCCallbackLoggers are installed globally. If two WebRTC sessions are running in the same process, both will get both's log messages.
215215
wlogger = LKRTCCallbackLogger()
216216
wlogger!.severity = .warning
217-
var innerLogger = Logger(label: "transport.webrtc.wrapped")
217+
var innerLogger = Logger(labelSuffix: "transport.webrtc.wrapped")
218218
wlogger!.start(messageAndSeverityHandler: { [weak self] (message, severity) in
219219
guard let self = self else {
220220
innerLogger.warning("WebRTC log AFTER deallocation: \(message)")
@@ -677,7 +677,7 @@ extension SignallingIceCandidate
677677
/// LKRTCAudioDeviceModule delegate whose only purpose is to stop playout/playback of every incoming audio track. This is because we want allonet to only deliver PCM packets up to the app layer to be played back spatially, and not have GoogleWebRTC play it back in stereo. I couldn't find any API to change this behavior without overriding this delegate.
678678
class PlaybackDisablingAudioDeviceModuleDelegate: NSObject, LKRTCAudioDeviceModuleDelegate
679679
{
680-
var logger = Logger(label: "transport.webrtc.adc")
680+
var logger = Logger(labelSuffix: "transport.webrtc.adc")
681681

682682
func audioDeviceModule(_ audioDeviceModule: LKRTCAudioDeviceModule, didReceiveSpeechActivityEvent speechActivityEvent: LKRTCSpeechActivityEvent)
683683
{

Sources/alloheadless/HeadlessWebRTCTransport.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,14 +25,14 @@ public class HeadlessWebRTCTransport: Transport
2525
}
2626
}
2727
}
28-
var logger = Logger(label: "transport.headless")
28+
var logger = Logger(labelSuffix: "transport.headless")
2929

3030
private var peer: AlloWebRTCPeer
3131
private var channels: [String: AlloWebRTCPeer.DataChannel] = [:] // track which channels are created
3232
private var connectionStatus: ConnectionStatus
3333
private var cancellables = Set<AnyCancellable>()
3434

35-
private static var datachannelLogger = Logger(label: "transport.headless.libdatachannel")
35+
private static var datachannelLogger = Logger(labelSuffix: "transport.headless.libdatachannel")
3636
private static var initialized: Bool = false
3737
private static func initialize()
3838
{
@@ -231,7 +231,7 @@ public class HeadlessWebRTCTransport: Transport
231231

232232
public static func forward(mediaStream: MediaStream, from sender: any Transport, to receiver: any Transport) throws -> MediaStreamForwarder
233233
{
234-
var logger = Logger(label: "transport.libdatachannel").forClient(receiver.clientId!)
234+
var logger = Logger(labelSuffix: "transport.libdatachannel").forClient(receiver.clientId!)
235235
logger.info("Forwarding media stream \(mediaStream.mediaId) from \(sender.clientId) to \(receiver.clientId)")
236236
let track = mediaStream as! AlloWebRTCPeer.Track
237237
let receiverHeadless = (receiver as! HeadlessWebRTCTransport)

Sources/allonet2/AlloClient.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ open class AlloClient : AlloSessionDelegate, ObservableObject, Identifiable, Ent
7373
return lhs.url == rhs.url && lhs.identity == rhs.identity
7474
}
7575

76-
public var logger = Logger(label: "client")
76+
public var logger = Logger(labelSuffix: "client")
7777

7878
// MARK: - Connection state related
7979

Sources/allonet2/AlloSession.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ public protocol AlloSessionDelegate: AnyObject
3434
public class AlloSession : NSObject, TransportDelegate
3535
{
3636
public weak var delegate: AlloSessionDelegate?
37-
nonisolated(unsafe) private var logger = Logger(label: "session")
37+
nonisolated(unsafe) private var logger = Logger(labelSuffix: "session")
3838

3939
internal let transport: Transport
4040

@@ -79,7 +79,7 @@ public class AlloSession : NSObject, TransportDelegate
7979
self.side = side
8080
self.transport = transport
8181
super.init()
82-
self.logger = Logger(label: "session", metadataProvider: Logger.MetadataProvider {
82+
self.logger = Logger(labelSuffix: "session", metadataProvider: Logger.MetadataProvider {
8383
guard let cid = self.clientId else { return [:] }
8484
return ["clientId": .stringConvertible(cid)]
8585
})

Sources/allonet2/Logging/LoggingUtil.swift

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,3 +23,18 @@ extension Logger
2323
return interactionLogger
2424
}
2525
}
26+
27+
extension Logger
28+
{
29+
public init(labelSuffix: String, fileId: String = #fileID)
30+
{
31+
let module = fileId.split(separator: "/").first!
32+
self.init(label: "\(module):\(labelSuffix)")
33+
}
34+
35+
public init(labelSuffix: String, fileId: String = #fileID, metadataProvider: MetadataProvider)
36+
{
37+
let module = fileId.split(separator: "/").first!
38+
self.init(label: "\(module):\(labelSuffix)", metadataProvider: metadataProvider)
39+
}
40+
}

Sources/allonet2/PlaceServer/ConnectedClient.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,6 @@ internal class ConnectedClient
2424
{
2525
self.session = session
2626
self.status = status
27-
self.logger = Logger(label: "place.server").forClient(self.cid)
27+
self.logger = Logger(labelSuffix: "place.server").forClient(self.cid)
2828
}
2929
}

Sources/allonet2/PlaceServer/PlaceServer.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ public class PlaceServer : AlloSessionDelegate
2121
let options: TransportConnectionOptions
2222
let alloAppAuthToken: String
2323

24-
var logger = Logger(label: "place.server")
24+
var logger = Logger(labelSuffix: "place.server")
2525

2626
var sfu: PlaceServerSFU!
2727
var web: PlaceServerHTTP!
@@ -142,7 +142,7 @@ public class PlaceServer : AlloSessionDelegate
142142
{
143143
let cid = sess.clientId!
144144
guard let client = self.clients[cid] else { return }
145-
let logger = client.remoteLoggers[m.label, setDefault: Logger(label: "remote:\(m.label)")]
145+
let logger = client.remoteLoggers[m.label, setDefault: Logger(labelSuffix: "remote:\(m.label)")]
146146
var metadata = m.metadata ?? [:]
147147
metadata["loggedFromClientId"] = .string(cid.uuidString)
148148
logger.log(

0 commit comments

Comments
 (0)