[#529] Replace OSLogger_ with OSLogger from the SDK (#590)

Closes #529
This commit is contained in:
Michal Fousek 2023-03-01 19:34:28 +01:00 committed by GitHub
parent b61fa213b6
commit 23a616baab
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 75 additions and 169 deletions

View File

@ -57,7 +57,7 @@
0D26AEC1299E8196005260EE /* Clamped.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0DACFA7E27208CE00039EEA5 /* Clamped.swift */; };
0D26AEC2299E8196005260EE /* TransactionRowView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9EAB46792861EA6A002904A0 /* TransactionRowView.swift */; };
0D26AEC3299E8196005260EE /* FeedbackGeneratorTestKey.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9EB863892922CC4D003D0F8B /* FeedbackGeneratorTestKey.swift */; };
0D26AEC4299E8196005260EE /* TCALogger.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9E0F5740297E7F1C005304FA /* TCALogger.swift */; };
0D26AEC4299E8196005260EE /* TCALogging.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9E0F5740297E7F1C005304FA /* TCALogging.swift */; };
0D26AEC5299E8196005260EE /* RecoveryPhraseValidationFlowStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0DFE93E2272CA1AA000FCCA5 /* RecoveryPhraseValidationFlowStore.swift */; };
0D26AEC6299E8196005260EE /* ImportWalletView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9E2DF99B27CF704D00649636 /* ImportWalletView.swift */; };
0D26AEC7299E8196005260EE /* RootInitialization.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9E9ADA7C2938F4C00071767B /* RootInitialization.swift */; };
@ -225,7 +225,7 @@
0D26AF6B299E8196005260EE /* DiskSpaceChecker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34E5F2F228E46DB700C17E5F /* DiskSpaceChecker.swift */; };
0D26AF6C299E8196005260EE /* TransactionSentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F9C165BD2740403600592F76 /* TransactionSentView.swift */; };
0D26AF6D299E8196005260EE /* ZcashSDKEnvironmentLiveKey.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9E153A6B292167FF00112F41 /* ZcashSDKEnvironmentLiveKey.swift */; };
0D26AF6E299E8196005260EE /* OSLogger_.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9E0F5746297EE5F3005304FA /* OSLogger_.swift */; };
0D26AF6E299E8196005260EE /* WalletLogger.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9E0F5746297EE5F3005304FA /* WalletLogger.swift */; };
0D26AF6F299E8196005260EE /* RequestStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = F9971A5627680DDE00A2DB75 /* RequestStore.swift */; };
0D26AF71299E8196005260EE /* Lottie in Frameworks */ = {isa = PBXBuildFile; productRef = 0D26AE8F299E8196005260EE /* Lottie */; };
0D26AF72299E8196005260EE /* URLRouting in Frameworks */ = {isa = PBXBuildFile; productRef = 0D26AE93299E8196005260EE /* URLRouting */; };
@ -368,10 +368,10 @@
9E01F8282833CDA0000EFC57 /* ScanTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9E01F8272833CDA0000EFC57 /* ScanTests.swift */; };
9E02B56A27FED43E005B809B /* FileManagerInterface.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9E02B56927FED43E005B809B /* FileManagerInterface.swift */; };
9E02B56C27FED475005B809B /* DatabaseFilesTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9E02B56B27FED475005B809B /* DatabaseFilesTests.swift */; };
9E0F5741297E7F1D005304FA /* TCALogger.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9E0F5740297E7F1C005304FA /* TCALogger.swift */; };
9E0F5741297E7F1D005304FA /* TCALogging.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9E0F5740297E7F1C005304FA /* TCALogging.swift */; };
9E0F5743297EB96C005304FA /* TCALoggerReducer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9E0F5742297EB96C005304FA /* TCALoggerReducer.swift */; };
9E0F5745297EBA1B005304FA /* LogStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9E0F5744297EBA1B005304FA /* LogStore.swift */; };
9E0F5747297EE5F3005304FA /* OSLogger_.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9E0F5746297EE5F3005304FA /* OSLogger_.swift */; };
9E0F5747297EE5F3005304FA /* WalletLogger.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9E0F5746297EE5F3005304FA /* WalletLogger.swift */; };
9E0F574B2980260D005304FA /* LoggerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9E0F574A2980260D005304FA /* LoggerTests.swift */; };
9E153A5F2920CE2700112F41 /* MnemonicInterface.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9E153A5E2920CD5100112F41 /* MnemonicInterface.swift */; };
9E153A602920CE2700112F41 /* MnemonicLiveKey.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9E153A5C2920CD5100112F41 /* MnemonicLiveKey.swift */; };
@ -692,10 +692,10 @@
9E01F8272833CDA0000EFC57 /* ScanTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ScanTests.swift; sourceTree = "<group>"; };
9E02B56927FED43E005B809B /* FileManagerInterface.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileManagerInterface.swift; sourceTree = "<group>"; };
9E02B56B27FED475005B809B /* DatabaseFilesTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DatabaseFilesTests.swift; sourceTree = "<group>"; };
9E0F5740297E7F1C005304FA /* TCALogger.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TCALogger.swift; sourceTree = "<group>"; };
9E0F5740297E7F1C005304FA /* TCALogging.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TCALogging.swift; sourceTree = "<group>"; };
9E0F5742297EB96C005304FA /* TCALoggerReducer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TCALoggerReducer.swift; sourceTree = "<group>"; };
9E0F5744297EBA1B005304FA /* LogStore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LogStore.swift; sourceTree = "<group>"; };
9E0F5746297EE5F3005304FA /* OSLogger_.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OSLogger_.swift; sourceTree = "<group>"; };
9E0F5746297EE5F3005304FA /* WalletLogger.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WalletLogger.swift; sourceTree = "<group>"; };
9E0F574A2980260D005304FA /* LoggerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoggerTests.swift; sourceTree = "<group>"; };
9E153A5B2920CD5100112F41 /* MnemonicMocks.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MnemonicMocks.swift; sourceTree = "<group>"; };
9E153A5C2920CD5100112F41 /* MnemonicLiveKey.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MnemonicLiveKey.swift; sourceTree = "<group>"; };
@ -1335,10 +1335,10 @@
9E0F573F297E7F00005304FA /* Logging */ = {
isa = PBXGroup;
children = (
9E0F5740297E7F1C005304FA /* TCALogger.swift */,
9E0F5740297E7F1C005304FA /* TCALogging.swift */,
9E0F5742297EB96C005304FA /* TCALoggerReducer.swift */,
9E0F5744297EBA1B005304FA /* LogStore.swift */,
9E0F5746297EE5F3005304FA /* OSLogger_.swift */,
9E0F5746297EE5F3005304FA /* WalletLogger.swift */,
);
path = Logging;
sourceTree = "<group>";
@ -2619,7 +2619,7 @@
0D26AEC1299E8196005260EE /* Clamped.swift in Sources */,
0D26AEC2299E8196005260EE /* TransactionRowView.swift in Sources */,
0D26AEC3299E8196005260EE /* FeedbackGeneratorTestKey.swift in Sources */,
0D26AEC4299E8196005260EE /* TCALogger.swift in Sources */,
0D26AEC4299E8196005260EE /* TCALogging.swift in Sources */,
0D26AEC5299E8196005260EE /* RecoveryPhraseValidationFlowStore.swift in Sources */,
0D26AEC6299E8196005260EE /* ImportWalletView.swift in Sources */,
0D26AEC7299E8196005260EE /* RootInitialization.swift in Sources */,
@ -2794,7 +2794,7 @@
0D26AF6B299E8196005260EE /* DiskSpaceChecker.swift in Sources */,
0D26AF6C299E8196005260EE /* TransactionSentView.swift in Sources */,
0D26AF6D299E8196005260EE /* ZcashSDKEnvironmentLiveKey.swift in Sources */,
0D26AF6E299E8196005260EE /* OSLogger_.swift in Sources */,
0D26AF6E299E8196005260EE /* WalletLogger.swift in Sources */,
0D26AF6F299E8196005260EE /* RequestStore.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
@ -2848,7 +2848,7 @@
0DACFA7F27208CE00039EEA5 /* Clamped.swift in Sources */,
9EAB467A2861EA6A002904A0 /* TransactionRowView.swift in Sources */,
9EB8638C2922CD4A003D0F8B /* FeedbackGeneratorTestKey.swift in Sources */,
9E0F5741297E7F1D005304FA /* TCALogger.swift in Sources */,
9E0F5741297E7F1D005304FA /* TCALogging.swift in Sources */,
0DFE93E3272CA1AA000FCCA5 /* RecoveryPhraseValidationFlowStore.swift in Sources */,
9E2DF99E27CF704D00649636 /* ImportWalletView.swift in Sources */,
9E9ADA7D2938F4C00071767B /* RootInitialization.swift in Sources */,
@ -3023,7 +3023,7 @@
34E5F2F328E46DB700C17E5F /* DiskSpaceChecker.swift in Sources */,
F9C165C42740403600592F76 /* TransactionSentView.swift in Sources */,
9E153A6E292167FF00112F41 /* ZcashSDKEnvironmentLiveKey.swift in Sources */,
9E0F5747297EE5F3005304FA /* OSLogger_.swift in Sources */,
9E0F5747297EE5F3005304FA /* WalletLogger.swift in Sources */,
F9971A5927680DDE00A2DB75 /* RequestStore.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
@ -3558,7 +3558,7 @@
repositoryURL = "https://github.com/zcash/ZcashLightClientKit/";
requirement = {
kind = revision;
revision = 3b2d972b2dd0c51e36d76e49fcf58273bf585c1b;
revision = 9bfbdcb4c5ce315beb2e6bf94e982e7e10703707;
};
};
6654C7382715A38000901167 /* XCRemoteSwiftPackageReference "swift-composable-architecture" */ = {

View File

@ -338,7 +338,7 @@
"kind" : "remoteSourceControl",
"location" : "https://github.com/zcash/ZcashLightClientKit/",
"state" : {
"revision" : "3b2d972b2dd0c51e36d76e49fcf58273bf585c1b"
"revision" : "9bfbdcb4c5ce315beb2e6bf94e982e7e10703707"
}
}
],

View File

@ -155,7 +155,7 @@ extension RootReducer {
saplingParamsSourceURL: SaplingParamsSourceURL.default,
viewingKeys: [viewingKey],
walletBirthday: birthday,
loggerProxy: OSLogger_(logLevel: .debug, category: LoggerConstants.sdkLogs)
loggerProxy: OSLogger(logLevel: .debug, category: LoggerConstants.sdkLogs)
)
return initializer

View File

@ -20,7 +20,7 @@ final class AppDelegate: NSObject, UIApplicationDelegate {
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? = nil
) -> Bool {
walletLogger = OSLogger_(logLevel: .debug, category: LoggerConstants.walletLogs)
walletLogger = OSLogger(logLevel: .debug, category: LoggerConstants.walletLogs)
// set the default behavior for the NSDecimalNumber
NSDecimalNumber.defaultBehavior = Zatoshi.decimalHandler
rootViewStore.send(.initialization(.appDelegate(.didFinishLaunching)))

View File

@ -1,135 +0,0 @@
//
// OSLogger_.swift
// secant-testnet
//
// Created by Lukáš Korba on 23.01.2023.
//
import Foundation
import ZcashLightClientKit
import os
enum LoggerConstants {
static let sdkLogs = "sdkLogs"
static let tcaLogs = "tcaLogs"
static let walletLogs = "walletLogs"
}
var walletLogger: ZcashLightClientKit.Logger?
enum LoggerProxy {
static func debug(_ message: String, file: StaticString = #file, function: StaticString = #function, line: Int = #line) {
walletLogger?.debug(message, file: file, function: function, line: line)
}
static func info(_ message: String, file: StaticString = #file, function: StaticString = #function, line: Int = #line) {
walletLogger?.info(message, file: file, function: function, line: line)
}
static func event(_ message: String, file: StaticString = #file, function: StaticString = #function, line: Int = #line) {
walletLogger?.event(message, file: file, function: function, line: line)
}
static func warn(_ message: String, file: StaticString = #file, function: StaticString = #function, line: Int = #line) {
walletLogger?.warn(message, file: file, function: function, line: line)
}
static func error(_ message: String, file: StaticString = #file, function: StaticString = #function, line: Int = #line) {
walletLogger?.error(message, file: file, function: function, line: line)
}
}
// TODO: [#529] the swiftlint rule as well as OSLogger_ will be removed once secant adopts latest SDK changes https://github.com/zcash/secant-ios-wallet/issues/529
// swiftlint:disable:next type_name
class OSLogger_: ZcashLightClientKit.Logger {
enum LogLevel: Int {
case debug
case error
case warning
case event
case info
}
private(set) var oslog: OSLog?
var level: LogLevel
init(logLevel: LogLevel, category: String) {
self.level = logLevel
if let bundleName = Bundle.main.bundleIdentifier {
self.oslog = OSLog(subsystem: bundleName, category: category)
}
}
func debug(
_ message: String,
file: StaticString = #file,
function: StaticString = #function,
line: Int = #line
) {
guard level.rawValue == LogLevel.debug.rawValue else { return }
log(level: "DEBUG 🐞", message: message, file: file, function: function, line: line)
}
func error(
_ message: String,
file: StaticString = #file,
function: StaticString = #function,
line: Int = #line
) {
guard level.rawValue <= LogLevel.error.rawValue else { return }
log(level: "ERROR 💥", message: message, file: file, function: function, line: line)
}
func warn(
_ message: String,
file: StaticString = #file,
function: StaticString = #function,
line: Int = #line
) {
guard level.rawValue <= LogLevel.warning.rawValue else { return }
log(level: "WARNING ⚠️", message: message, file: file, function: function, line: line)
}
func event(
_ message: String,
file: StaticString = #file,
function: StaticString = #function,
line: Int = #line
) {
guard level.rawValue <= LogLevel.event.rawValue else { return }
log(level: "EVENT ⏱", message: message, file: file, function: function, line: line)
}
func info(
_ message: String,
file: StaticString = #file,
function: StaticString = #function,
line: Int = #line
) {
guard level.rawValue <= LogLevel.info.rawValue else { return }
log(level: "INFO ", message: message, file: file, function: function, line: line)
}
private func log(
level: String,
message: String,
file: StaticString = #file,
function: StaticString = #function,
line: Int = #line
) {
guard let oslog else { return }
let fileName = (String(describing: file) as NSString).lastPathComponent
os_log(
"[%{public}@] %{public}@ - %{public}@ - Line: %{public}d -> %{public}@",
log: oslog,
level,
fileName,
String(describing: function),
line,
message
)
}
}

View File

@ -6,6 +6,7 @@
//
import ComposableArchitecture
import ZcashLightClientKit
extension ReducerProtocol {
@inlinable
@ -38,7 +39,7 @@ extension ReducerLogger {
CustomDump.customDump(receivedAction, to: &target, indent: 2)
target.write("\n")
target.write(diff(oldState, newState).map { "\($0)\n" } ?? " (No state changes)\n")
TCALogger.live.tcaDebug("\(target)")
OSLogger.live.tcaDebug("\(target)")
}
}
}

View File

@ -1,5 +1,5 @@
//
// TCALogger.swift
// TCALogging.swift
// secant-testnet
//
// Created by Lukáš Korba on 23.01.2023.
@ -7,11 +7,10 @@
import Foundation
import os
import ZcashLightClientKit
class TCALogger: OSLogger_ { }
extension TCALogger {
static let live = TCALogger(logLevel: .debug, category: LoggerConstants.tcaLogs)
extension OSLogger {
static let live = OSLogger(logLevel: .debug, category: LoggerConstants.tcaLogs)
func tcaDebug(_ message: String) {
guard let oslog else { return }

View File

@ -0,0 +1,40 @@
//
// WalletLogger.swift
// secant-testnet
//
// Created by Lukáš Korba on 23.01.2023.
//
import Foundation
import ZcashLightClientKit
import os
enum LoggerConstants {
static let sdkLogs = "sdkLogs"
static let tcaLogs = "tcaLogs"
static let walletLogs = "walletLogs"
}
var walletLogger: ZcashLightClientKit.Logger?
enum LoggerProxy {
static func debug(_ message: String, file: StaticString = #file, function: StaticString = #function, line: Int = #line) {
walletLogger?.debug(message, file: file, function: function, line: line)
}
static func info(_ message: String, file: StaticString = #file, function: StaticString = #function, line: Int = #line) {
walletLogger?.info(message, file: file, function: function, line: line)
}
static func event(_ message: String, file: StaticString = #file, function: StaticString = #function, line: Int = #line) {
walletLogger?.event(message, file: file, function: function, line: line)
}
static func warn(_ message: String, file: StaticString = #file, function: StaticString = #function, line: Int = #line) {
walletLogger?.warn(message, file: file, function: function, line: line)
}
static func error(_ message: String, file: StaticString = #file, function: StaticString = #function, line: Int = #line) {
walletLogger?.error(message, file: file, function: function, line: line)
}
}

View File

@ -8,13 +8,14 @@
import XCTest
@testable import secant_testnet
import OSLog
import ZcashLightClientKit
class LoggerTests: XCTestCase {
let timeToPast: TimeInterval = 0.1
func testOSLogger_loggingAndExport() throws {
let category = "testOSLogger_loggingAndExport"
let osLogger = OSLogger_(logLevel: .debug, category: category)
let osLogger = OSLogger(logLevel: .debug, category: category)
let testMessage = "test message"
osLogger.debug(testMessage)
@ -33,7 +34,7 @@ class LoggerTests: XCTestCase {
func testOSLogger_DebugLevel_DebugLog() throws {
let category = "testOSLogger_DebugLevel_DebugLog"
let osLogger = OSLogger_(logLevel: .debug, category: category)
let osLogger = OSLogger(logLevel: .debug, category: category)
let testMessage = "debug message"
osLogger.debug(testMessage)
@ -52,7 +53,7 @@ class LoggerTests: XCTestCase {
func testOSLogger_ErrorLevel_ErrorLog() throws {
let category = "testOSLogger_ErrorLevel_ErrorLog"
let osLogger = OSLogger_(logLevel: .debug, category: category)
let osLogger = OSLogger(logLevel: .debug, category: category)
let testMessage = "error message"
osLogger.error(testMessage)
@ -71,7 +72,7 @@ class LoggerTests: XCTestCase {
func testOSLogger_WarningLevel_WarningLog() throws {
let category = "testOSLogger_WarningLevel_WarningLog"
let osLogger = OSLogger_(logLevel: .warning, category: category)
let osLogger = OSLogger(logLevel: .warning, category: category)
let testMessage = "warning message"
osLogger.warn(testMessage)
@ -90,7 +91,7 @@ class LoggerTests: XCTestCase {
func testOSLogger_EventLevel_EventLog() throws {
let category = "testOSLogger_EventLevel_EventLog"
let osLogger = OSLogger_(logLevel: .event, category: category)
let osLogger = OSLogger(logLevel: .event, category: category)
let testMessage = "event message"
osLogger.event(testMessage)
@ -109,7 +110,7 @@ class LoggerTests: XCTestCase {
func testOSLogger_InfoLevel_InfoLog() throws {
let category = "testOSLogger_InfoLevel_InfoLog"
let osLogger = OSLogger_(logLevel: .info, category: category)
let osLogger = OSLogger(logLevel: .info, category: category)
let testMessage = "info message"
osLogger.info(testMessage)
@ -128,7 +129,7 @@ class LoggerTests: XCTestCase {
func testOSLogger_DebugLevel_OtherLogs() throws {
let category = "testOSLogger_DebugLevel_OtherLogs"
let osLogger = OSLogger_(logLevel: .debug, category: category)
let osLogger = OSLogger(logLevel: .debug, category: category)
let testMessage = "debug message"
osLogger.debug(testMessage)
@ -146,7 +147,7 @@ class LoggerTests: XCTestCase {
func testOSLogger_ErrorLevel_OtherLogs() throws {
let category = "testOSLogger_ErrorLevel_OtherLogs"
let osLogger = OSLogger_(logLevel: .error, category: category)
let osLogger = OSLogger(logLevel: .error, category: category)
let testMessage = "debug message"
osLogger.debug(testMessage)
@ -164,7 +165,7 @@ class LoggerTests: XCTestCase {
func testOSLogger_WarningLevel_OtherLogs() throws {
let category = "testOSLogger_WarningLevel_OtherLogs"
let osLogger = OSLogger_(logLevel: .warning, category: category)
let osLogger = OSLogger(logLevel: .warning, category: category)
let testMessage = "debug message"
osLogger.debug(testMessage)
@ -182,7 +183,7 @@ class LoggerTests: XCTestCase {
func testOSLogger_EventLevel_OtherLogs() throws {
let category = "testOSLogger_EventLevel_OtherLogs"
let osLogger = OSLogger_(logLevel: .event, category: category)
let osLogger = OSLogger(logLevel: .event, category: category)
let testMessage = "debug message"
osLogger.debug(testMessage)
@ -200,7 +201,7 @@ class LoggerTests: XCTestCase {
func testOSLogger_InfoLevel_OtherLogs() throws {
let category = "testOSLogger_InfoLevel_OtherLogs"
let osLogger = OSLogger_(logLevel: .info, category: category)
let osLogger = OSLogger(logLevel: .info, category: category)
let testMessage = "debug message"
osLogger.debug(testMessage)
@ -218,7 +219,7 @@ class LoggerTests: XCTestCase {
func testWalletLogger() throws {
let category = "testWalletLogger"
walletLogger = OSLogger_(logLevel: .info, category: category)
walletLogger = OSLogger(logLevel: .info, category: category)
let testMessage = "wallet test message"
LoggerProxy.info(testMessage)