diff --git a/app/src/main/java/com/tangem/tap/TapApplication.kt b/app/src/main/java/com/tangem/tap/TapApplication.kt index 518ad410c4..2dee2fa397 100644 --- a/app/src/main/java/com/tangem/tap/TapApplication.kt +++ b/app/src/main/java/com/tangem/tap/TapApplication.kt @@ -8,6 +8,7 @@ import com.google.firebase.ktx.Firebase import com.google.firebase.remoteconfig.ktx.remoteConfig import com.google.firebase.remoteconfig.ktx.remoteConfigSettings import com.tangem.Log +import com.tangem.LogFormat import com.tangem.blockchain.network.BlockchainSdkRetrofitBuilder import com.tangem.domain.DomainLayer import com.tangem.network.common.MoshiConverter @@ -108,7 +109,21 @@ class TapApplication : Application(), ImageLoaderFactory { val infoHolder = AdditionalFeedbackInfo() infoHolder.setAppVersion(this) - val logWriter = TangemLogCollector() + val logLevels = listOf( + Log.Level.ApduCommand, + Log.Level.Apdu, + Log.Level.Tlv, + Log.Level.Nfc, + Log.Level.Command, + Log.Level.Session, + Log.Level.View, + Log.Level.Network, + Log.Level.Error, + ) + val logWriter = TangemLogCollector( + levels = logLevels, + messageFormatter = LogFormat.StairsFormatter() + ) Log.addLogger(logWriter) store.dispatch(GlobalAction.SetFeedbackManager(FeedbackManager(infoHolder, logWriter))) diff --git a/app/src/main/java/com/tangem/tap/common/log/TangemLogCollector.kt b/app/src/main/java/com/tangem/tap/common/log/TangemLogCollector.kt index c1ae08ebc2..54a56e17c3 100644 --- a/app/src/main/java/com/tangem/tap/common/log/TangemLogCollector.kt +++ b/app/src/main/java/com/tangem/tap/common/log/TangemLogCollector.kt @@ -1,25 +1,31 @@ package com.tangem.tap.common.log import com.tangem.Log +import com.tangem.LogFormat import com.tangem.TangemSdkLogger import java.text.SimpleDateFormat -import java.util.Date +import java.util.* + +class TangemLogCollector( + private val levels: List, + private val messageFormatter: LogFormat, +) : TangemSdkLogger { -class TangemLogCollector : TangemSdkLogger { private val dateFormatter = SimpleDateFormat("HH:mm:ss.SSS") private val logs = mutableListOf() private val mutex = Object() override fun log(message: () -> String, level: Log.Level) { - val time = dateFormatter.format(Date()) + if (!levels.contains(level)) return + synchronized(mutex) { - logs.add("$time: ${message()}\n") + val formattedMessage = messageFormatter.format(message, level) + val logMessage = "${dateFormatter.format(Date())}: $formattedMessage" + logs.add("$logMessage\n") } } fun getLogs(): List = synchronized(mutex) { logs.toList() } - fun clearLogs() { - synchronized(mutex) { logs.clear() } - } + fun clearLogs() = synchronized(mutex) { logs.clear() } } \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/features/feedback/FeedbackManager.kt b/app/src/main/java/com/tangem/tap/features/feedback/FeedbackManager.kt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/dependencies.gradle b/dependencies.gradle index e84776b849..cbd16111f5 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -1,7 +1,7 @@ ext.versions = [ kotlin : '1.6.10', build_gradle : '7.1.3', - tamgem_card_sdk : 'develop-156', + tamgem_card_sdk : 'develop-157', tamgem_blockchain_sdk: 'develop-99', ] @@ -9,4 +9,4 @@ ext.environmentConfig = [ environment : "ENVIRONMENT", testActionEnabled: "TEST_ACTION_ENABLED", logEnabled : "LOG_ENABLED", -] +] \ No newline at end of file