From f7e06ff772342c021d139a3c530130b8c36f99fe Mon Sep 17 00:00:00 2001 From: Dariusz Rybicki <dariusz@elixxir.io> Date: Fri, 23 Sep 2022 00:47:38 +0200 Subject: [PATCH] Add Logger --- Examples/xx-messenger/Package.swift | 1 + .../Sources/AppCore/Logger/Logger.swift | 45 +++++++++++++++++++ 2 files changed, 46 insertions(+) create mode 100644 Examples/xx-messenger/Sources/AppCore/Logger/Logger.swift diff --git a/Examples/xx-messenger/Package.swift b/Examples/xx-messenger/Package.swift index 688d2244..c864b65a 100644 --- a/Examples/xx-messenger/Package.swift +++ b/Examples/xx-messenger/Package.swift @@ -67,6 +67,7 @@ let package = Package( .target( name: "AppCore", dependencies: [ + .product(name: "Pulse", package: "Pulse"), .product(name: "XCTestDynamicOverlay", package: "xctest-dynamic-overlay"), .product(name: "XXClient", package: "elixxir-dapps-sdk-swift"), .product(name: "XXDatabase", package: "client-ios-db"), diff --git a/Examples/xx-messenger/Sources/AppCore/Logger/Logger.swift b/Examples/xx-messenger/Sources/AppCore/Logger/Logger.swift new file mode 100644 index 00000000..6766d98d --- /dev/null +++ b/Examples/xx-messenger/Sources/AppCore/Logger/Logger.swift @@ -0,0 +1,45 @@ +import Foundation +import Pulse +import XCTestDynamicOverlay + +public struct Logger { + public enum Message: Equatable { + case error(NSError) + } + + public var run: (Message, String, String, UInt) -> Void + + public func callAsFunction( + _ msg: Message, + file: String = #file, + function: String = #function, + line: UInt = #line + ) { + run(msg, file, function, line) + } +} + +extension Logger { + public static func live() -> Logger { + Logger { msg, file, function, line in + switch msg { + case .error(let error): + LoggerStore.shared.storeMessage( + label: "xx-messenger", + level: .error, + message: error.localizedDescription, + metadata: [:], + file: file, + function: function, + line: line + ) + } + } + } +} + +extension Logger { + public static let unimplemented = Logger( + run: XCTUnimplemented("\(Self.self).error") + ) +} -- GitLab