diff --git a/ElementX/Sources/AppCoordinator.swift b/ElementX/Sources/AppCoordinator.swift index 891724940..e9bad6e77 100644 --- a/ElementX/Sources/AppCoordinator.swift +++ b/ElementX/Sources/AppCoordinator.swift @@ -7,6 +7,7 @@ // import Combine +import MatrixRustSDK import UIKit class AppCoordinator: AuthenticationCoordinatorDelegate, Coordinator { @@ -71,13 +72,7 @@ class AppCoordinator: AuthenticationCoordinatorDelegate, Coordinator { setupStateMachine() - let loggerConfiguration = MXLogConfiguration() - loggerConfiguration.logLevel = .verbose - // Redirect NSLogs to files only if we are not debugging - if isatty(STDERR_FILENO) == 0 { - loggerConfiguration.redirectLogsToFiles = true - } - MXLog.configure(loggerConfiguration) + setupLogging() // Benchmark.trackingEnabled = true } @@ -97,6 +92,29 @@ class AppCoordinator: AuthenticationCoordinatorDelegate, Coordinator { // MARK: - Private + private func setupLogging() { + let loggerConfiguration = MXLogConfiguration() + + #if DEBUG + // This exposes the full Rust side tracing subscriber filter for more flexibility. + // We can filter by level, crate and even file. See more details here: + // https://docs.rs/tracing-subscriber/0.2.7/tracing_subscriber/filter/struct.EnvFilter.html#examples + setupTracing(configuration: "info,hyper=warn,sled=warn,matrix_sdk_sled=warn") + + loggerConfiguration.logLevel = .debug + #else + setupTracing(configuration: "info,hyper=warn,sled=warn,matrix_sdk_sled=warn") + loggerConfiguration.logLevel = .info + #endif + + // Avoid redirecting NSLogs to files if we are attached to a debugger. + if isatty(STDERR_FILENO) == 0 { + loggerConfiguration.redirectLogsToFiles = true + } + + MXLog.configure(loggerConfiguration) + } + // swiftlint:disable cyclomatic_complexity private func setupStateMachine() { stateMachine.addTransitionHandler { [weak self] context in diff --git a/ElementX/Sources/Services/Background/UIKitBackgroundTask.swift b/ElementX/Sources/Services/Background/UIKitBackgroundTask.swift index cf0e21412..58da62908 100644 --- a/ElementX/Sources/Services/Background/UIKitBackgroundTask.swift +++ b/ElementX/Sources/Services/Background/UIKitBackgroundTask.swift @@ -49,7 +49,7 @@ class UIKitBackgroundTask: BackgroundTaskProtocol { } if identifier == .invalid { - MXLog.debug("[UIKitBackgroundTask] Do not start background task: \(name), as OS declined") + MXLog.verbose("[UIKitBackgroundTask] Do not start background task: \(name), as OS declined") // call expiration handler immediately expirationHandler?(self) return nil @@ -60,7 +60,7 @@ class UIKitBackgroundTask: BackgroundTaskProtocol { reuse() } - MXLog.debug("[UIKitBackgroundTask] Start background task #\(identifier.rawValue) - \(name)") + MXLog.verbose("[UIKitBackgroundTask] Start background task #\(identifier.rawValue) - \(name)") } func reuse() { @@ -83,7 +83,7 @@ class UIKitBackgroundTask: BackgroundTaskProtocol { private func endTask() { if identifier != .invalid { - MXLog.debug("[UIKitBackgroundTask] End background task #\(identifier.rawValue) - \(name) after \(readableElapsedTime)") + MXLog.verbose("[UIKitBackgroundTask] End background task #\(identifier.rawValue) - \(name) after \(readableElapsedTime)") application.endBackgroundTask(identifier) identifier = .invalid diff --git a/ElementX/Sources/Services/Background/UIKitBackgroundTaskService.swift b/ElementX/Sources/Services/Background/UIKitBackgroundTaskService.swift index df047eb36..291a64b2a 100644 --- a/ElementX/Sources/Services/Background/UIKitBackgroundTaskService.swift +++ b/ElementX/Sources/Services/Background/UIKitBackgroundTaskService.swift @@ -24,12 +24,12 @@ class UIKitBackgroundTaskService: BackgroundTaskServiceProtocol { isReusable: Bool, expirationHandler: (() -> Void)?) -> BackgroundTaskProtocol? { guard let application = application else { - MXLog.debug("[UIKitBackgroundTaskService] Do not start background task: \(name). Application is nil") + MXLog.verbose("[UIKitBackgroundTaskService] Do not start background task: \(name). Application is nil") return nil } if avoidStartingNewTasks(for: application) { - MXLog.debug("[UIKitBackgroundTaskService] Do not start background task: \(name), as not enough time exists") + MXLog.verbose("[UIKitBackgroundTaskService] Do not start background task: \(name), as not enough time exists") // call expiration handler immediately expirationHandler?() return nil @@ -70,7 +70,7 @@ class UIKitBackgroundTaskService: BackgroundTaskServiceProtocol { let appState = application.applicationState let remainingTime = readableBackgroundTimeRemaining(application.backgroundTimeRemaining) - MXLog.debug("[UIKitBackgroundTaskService] Background task \(name) \(created ? "started" : "reused") with app state: \(appState) and estimated background time remaining: \(remainingTime)") + MXLog.verbose("[UIKitBackgroundTaskService] Background task \(name) \(created ? "started" : "reused") with app state: \(appState) and estimated background time remaining: \(remainingTime)") return result }