Skip to content

Commit f081387

Browse files
jaeoptthomaszurkan-optimizely
authored andcommitted
use os_log for iOS/tvOS 10+ (#229)
* add os_log for iOS/tvOS 10+ * add os_log for iOS/tvOS 10+ * changes per review comments * Revert "changes per review comments" This reverts commit b39511e. * changes per review comments * fix per review comments
1 parent d5781e9 commit f081387

File tree

2 files changed

+40
-3
lines changed

2 files changed

+40
-3
lines changed

OptimizelySDK/Customization/DefaultLogger.swift

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
***************************************************************************/
1616

1717
import Foundation
18+
import os.log
1819

1920
open class DefaultLogger: OPTLogger {
2021
private static var _logLevel: OptimizelyLogLevel?
@@ -30,15 +31,36 @@ open class DefaultLogger: OPTLogger {
3031
}
3132
}
3233

34+
var osLogUsed = false
35+
3336
required public init() {
3437
}
3538

3639
open func log(level: OptimizelyLogLevel, message: String) {
3740
if level > DefaultLogger.logLevel {
3841
return
3942
}
40-
let message = "[OPTIMIZELY][" + level.name + "] " + message
41-
42-
NSLog(message)
43+
44+
if #available(iOS 10.0, tvOS 10.0, *) {
45+
var osLogType: OSLogType
46+
47+
switch level {
48+
case .error: osLogType = .error
49+
case .info: osLogType = .info
50+
case .debug: osLogType = .debug
51+
default: osLogType = .default
52+
}
53+
54+
os_log("[%{public}@] %{public}@", log: .optimizely, type: osLogType, level.name, message)
55+
osLogUsed = true
56+
} else {
57+
let message = "[OPTIMIZELY][" + level.name + "] " + message
58+
NSLog(message)
59+
}
4360
}
4461
}
62+
63+
@available(iOS 10.0, tvOS 10.0, *)
64+
extension OSLog {
65+
static let optimizely = OSLog(subsystem: "com.optimizely.swift-sdk", category: "OPTIMIZELY")
66+
}

OptimizelySDK/OptimizelyTests/OptimizelyTests-Common/LoggerTests.swift

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,20 @@ class LoggerTests: XCTestCase {
3636
}
3737
XCTAssertTrue(CustomLogger.logCount == 0)
3838
}
39+
40+
// MARK: - DefaultLogger Tests
41+
42+
func testLog_UseOSLog() {
43+
let logger = DefaultLogger()
44+
logger.i("Log Message")
45+
46+
if #available(iOS 10.0, tvOS 10.0, *) {
47+
XCTAssertTrue(logger.osLogUsed)
48+
} else {
49+
XCTAssertFalse(logger.osLogUsed)
50+
}
51+
}
52+
3953
}
4054

4155
private class CustomLogger: OPTLogger {
@@ -57,3 +71,4 @@ private class CustomLogger: OPTLogger {
5771
CustomLogger.logCount += 1
5872
}
5973
}
74+

0 commit comments

Comments
 (0)