Skip to content

Commit b286219

Browse files
committed
add closure-based debug logging instead of autoclosure logging for all levels
1 parent 4b06ada commit b286219

File tree

6 files changed

+22
-8
lines changed

6 files changed

+22
-8
lines changed

DemoSwiftApp/Customization/CustomLogger.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@ class CustomLogger: OPTLogger {
1515
required init() {
1616
}
1717

18-
public func log(level: OptimizelyLogLevel, message: @autoclosure () -> String) {
18+
public func log(level: OptimizelyLogLevel, message: String) {
1919
if level.rawValue <= CustomLogger.logLevel.rawValue {
20-
print("🐱 - [\(level.name)] Kitty - \(message())")
20+
print("🐱 - [\(level.name)] Kitty - \(message)")
2121
}
2222
}
2323
}

OptimizelySDK/Customization/DefaultEventDispatcher.swift

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,8 @@ open class DefaultEventDispatcher : BackgroundingCallbacks, OPTEventDispatcher {
158158
self.logger?.e("Removed event different from sent event")
159159
}
160160
else {
161-
self.logger?.d("Successfully sent event: \(event)")
161+
// avoid event-log-message preparation overheads with closure-logging
162+
self.logger?.d({ "Successfully sent event: \(event)" })
162163
}
163164
}
164165
else {

OptimizelySDK/Customization/DefaultLogger.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,11 +33,11 @@ open class DefaultLogger : OPTLogger {
3333
required public init() {
3434
}
3535

36-
open func log(level: OptimizelyLogLevel, message: @autoclosure () -> String) {
37-
if level.rawValue > DefaultLogger.logLevel.rawValue {
36+
open func log(level: OptimizelyLogLevel, message: String) {
37+
if level > DefaultLogger.logLevel {
3838
return
3939
}
40-
let message = "[OPTIMIZELY][" + level.name + "] " + message()
40+
let message = "[OPTIMIZELY][" + level.name + "] " + message
4141

4242
NSLog(message)
4343
}

OptimizelySDK/Customization/Protocols/OPTLogger.swift

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ import Foundation
3535
- Parameter level: The priority level of the log.
3636
- Parameter message: The message to log.
3737
*/
38-
func log(level: OptimizelyLogLevel, message: @autoclosure () -> String)
38+
func log(level: OptimizelyLogLevel, message: String)
3939

4040
}
4141

@@ -47,6 +47,12 @@ extension OPTLogger {
4747
func w(_ message: String) { log(level: .warning, message: message) }
4848
func i(_ message: String) { log(level: .info, message: message) }
4949
func d(_ message: String) { log(level: .debug, message: message) }
50+
// closure-based debug logging:
51+
// - we pay overhead for preparing large/complicated log messages only when it's debug level
52+
func d(_ message: () -> String) {
53+
guard Self.logLevel >= OptimizelyLogLevel.debug else { return }
54+
log(level: .debug, message: message())
55+
}
5056

5157
// MARK: - Utils for LogMessage
5258

OptimizelySDK/Implementation/DefaultDatafileHandler.swift

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,8 @@ class DefaultDatafileHandler : OPTDatafileHandler {
126126

127127
completionHandler(result)
128128

129-
//self.logger?.d(response.debugDescription)
129+
// avoid event-log-message preparation overheads with closure-logging
130+
self.logger?.d({ response.debugDescription })
130131
}
131132

132133
task.resume()

OptimizelySDK/Optimizely/OptimizelyLogLevel.swift

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,3 +43,9 @@ import Foundation
4343
}
4444
}
4545
}
46+
47+
extension OptimizelyLogLevel: Comparable {
48+
public static func < (lhs: OptimizelyLogLevel, rhs: OptimizelyLogLevel) -> Bool {
49+
return lhs.rawValue < rhs.rawValue
50+
}
51+
}

0 commit comments

Comments
 (0)