Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 29 additions & 27 deletions App/ViewController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,11 @@

import UIKit
import Lock
import OSLog
import os
class ViewController: UIViewController {

private let logger = os.Logger(subsystem: Bundle.main.bundleIdentifier ?? "com.auth0.lock", category: "ViewController")

override func loadView() {
let view = UIView()
view.backgroundColor = .white
Expand Down Expand Up @@ -183,21 +185,20 @@ class ViewController: UIViewController {
}

private func showLock(lock: Lock) {
// Log.enable(minimumSeverity: LogSeverity.verbose, debugMode: true)
// lock
// .onAuth { Log.info?.message("Obtained credentials \($0)") }
// .onError { Log.error?.message("Failed with \($0)") }
// .onSignUp { email, _ in Log.debug?.message("New user \(email)") }
// .onCancel { Log.debug?.message("User closed lock") }
// .onPasswordless { Log.debug?.message("Passwordless requested for \($0)") }
// .present(from: self)
lock
.onAuth { [logger] in logger.info("Obtained credentials \($0)") }
.onError { [logger] in logger.error("Failed with \($0)") }
.onSignUp { [logger] email, _ in logger.debug("New user \(email)") }
.onCancel { [logger] in logger.debug("User closed lock") }
.onPasswordless { [logger] in logger.debug("Passwordless requested for \($0)") }
.present(from: self)
}
}

func applyDefaultOptions(_ options: inout OptionBuildable) {
options.closable = true
options.logLevel = .all
options.loggerOutput = CleanroomLockLogger()
options.loggerOutput = OSLockLogger()
options.logHttpRequest = true
options.oidcConformant = true

Expand Down Expand Up @@ -266,24 +267,25 @@ func applyPhantomStyle(_ style: inout Style) {
style.ruleTextColor = darkPurple
}

class CleanroomLockLogger: LoggerOutput {
class OSLockLogger: LoggerOutput {

private let logger = os.Logger(subsystem: Bundle.main.bundleIdentifier ?? "com.auth0.lock", category: "Lock")

func message(_ message: String, level: LoggerLevel, filename: String, line: Int) {
// let channel: LogChannel?
// switch level {
// case .debug:
// channel = Log.debug
// case .error:
// channel = Log.error
// case .info:
// channel = Log.info
// case .verbose:
// channel = Log.verbose
// case .warn:
// channel = Log.warning
// default:
// channel = nil
// }
// channel?.message(message, filePath: filename, fileLine: line)
let osLevel: OSLogType
switch level {
case .error:
osLevel = .error
case .warn:
osLevel = .default
case .info:
osLevel = .info
case .debug, .verbose:
osLevel = .debug
default:
osLevel = .default
}
let filename = URL(fileURLWithPath: filename).lastPathComponent
logger.log(level: osLevel, "\(filename):\(line) - \(message)")
}
}
33 changes: 18 additions & 15 deletions EXAMPLES.md
Original file line number Diff line number Diff line change
Expand Up @@ -284,32 +284,35 @@ Database connection will display the Terms of Service dialog. Defaults to `true`
.withOptions {
$0.logLevel = .all
$0.logHttpRequest = true
$0.loggerOutput = CleanroomLockLogger()
$0.loggerOutput = OSLockLogger()
}
```

In the code above, the *loggerOutput* has been set to use [CleanroomLogger](https://github.com/emaloney/CleanroomLogger).
This can typically be achieved by implementing the *loggerOutput* protocol. You can of course use your favorite logger library.
In the code above, the *loggerOutput* has been set to use Apple's native [unified logging system](https://developer.apple.com/documentation/os/logger) (`os.Logger`).
This can typically be achieved by implementing the *loggerOutput* protocol. You can of course use your favorite logger library.

```swift
class CleanroomLockLogger: LoggerOutput {
import os

class OSLockLogger: LoggerOutput {
private let logger = os.Logger(subsystem: Bundle.main.bundleIdentifier ?? "com.auth0.lock", category: "Lock")

func message(_ message: String, level: LoggerLevel, filename: String, line: Int) {
let channel: LogChannel?
let osLevel: OSLogType
switch level {
case .debug:
channel = Log.debug
case .error:
channel = Log.error
case .info:
channel = Log.info
case .verbose:
channel = Log.verbose
osLevel = .error
case .warn:
channel = Log.warning
osLevel = .default
case .info:
osLevel = .info
case .debug, .verbose:
osLevel = .debug
default:
channel = nil
osLevel = .default
}
channel?.message(message, filePath: filename, fileLine: line)
let filename = URL(fileURLWithPath: filename).lastPathComponent
logger.log(level: osLevel, "\(filename):\(line) - \(message)")
}
}
```
Expand Down
2 changes: 0 additions & 2 deletions Lock.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -319,7 +319,6 @@
5C53A7F82703F48100A7C0A3 /* Nimble.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = Nimble.xcframework; path = Carthage/Build/Nimble.xcframework; sourceTree = "<group>"; };
5C53A7F92703F48100A7C0A3 /* OHHTTPStubs.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = OHHTTPStubs.xcframework; path = Carthage/Build/OHHTTPStubs.xcframework; sourceTree = "<group>"; };
5C53A8002703F4AB00A7C0A3 /* SimpleKeychain.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = SimpleKeychain.xcframework; path = Carthage/Build/SimpleKeychain.xcframework; sourceTree = "<group>"; };
5C53A8012703F4AB00A7C0A3 /* CleanroomLogger.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = CleanroomLogger.xcframework; path = Carthage/Build/CleanroomLogger.xcframework; sourceTree = "<group>"; };
5C53A8022703F4AB00A7C0A3 /* JWTDecode.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = JWTDecode.xcframework; path = Carthage/Build/JWTDecode.xcframework; sourceTree = "<group>"; };
5C53A8062703F4B900A7C0A3 /* Auth0.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = Auth0.xcframework; path = Carthage/Build/Auth0.xcframework; sourceTree = "<group>"; };
5F0FCF8F1E20117E00E3D53B /* ObserverStore.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ObserverStore.swift; sourceTree = "<group>"; };
Expand Down Expand Up @@ -861,7 +860,6 @@
isa = PBXGroup;
children = (
5C53A8062703F4B900A7C0A3 /* Auth0.xcframework */,
5C53A8012703F4AB00A7C0A3 /* CleanroomLogger.xcframework */,
5C53A8022703F4AB00A7C0A3 /* JWTDecode.xcframework */,
5C53A8002703F4AB00A7C0A3 /* SimpleKeychain.xcframework */,
5C53A7F82703F48100A7C0A3 /* Nimble.xcframework */,
Expand Down
Loading