@@ -9,16 +9,21 @@ extension URLSessionProxyDelegate {
9
9
/// you initialize a `URLSession` using `init(configuration:delegate:delegateQueue:))` method, the
10
10
/// delegate will automatically get replaced with a `URLSessionProxyDelegate` that logs all the
11
11
/// needed events and forwards the methods to your original delegate.
12
+ @MainActor
12
13
public static func enableAutomaticRegistration( logger: NetworkLogger = . init( ) ) {
13
- sharedLogger = logger
14
+ guard sharedNetworkLogger == nil else {
15
+ NSLog ( " Error: Puls network request logging is already enabled " )
16
+ return
17
+ }
18
+ sharedNetworkLogger = logger
14
19
if let lhs = class_getClassMethod ( URLSession . self, #selector( URLSession . init ( configuration: delegate: delegateQueue: ) ) ) ,
15
20
let rhs = class_getClassMethod ( URLSession . self, #selector( URLSession . pulse_init ( configuration: delegate: delegateQueue: ) ) ) {
16
21
method_exchangeImplementations ( lhs, rhs)
17
22
}
18
23
}
19
24
}
20
25
21
- private var sharedLogger : NetworkLogger ? {
26
+ var sharedNetworkLogger : NetworkLogger ? {
22
27
get { _sharedLogger. value }
23
28
set { _sharedLogger. value = newValue }
24
29
}
@@ -30,11 +35,11 @@ private extension URLSession {
30
35
return self . pulse_init ( configuration: configuration, delegate: delegate, delegateQueue: delegateQueue)
31
36
}
32
37
configuration. protocolClasses = [ RemoteLoggerURLProtocol . self] + ( configuration. protocolClasses ?? [ ] )
33
- guard let sharedLogger else {
38
+ guard let sharedNetworkLogger else {
34
39
assertionFailure ( " Shared logger is missing " )
35
40
return self . pulse_init ( configuration: configuration, delegate: delegate, delegateQueue: delegateQueue)
36
41
}
37
- let delegate = URLSessionProxyDelegate ( logger: sharedLogger , delegate: delegate)
42
+ let delegate = URLSessionProxyDelegate ( logger: sharedNetworkLogger , delegate: delegate)
38
43
return self . pulse_init ( configuration: configuration, delegate: delegate, delegateQueue: delegateQueue)
39
44
}
40
45
}
0 commit comments