Updated on 2026-08-14

This commit is contained in:
Tangem 2022-07-06 00:29:38 +03:00
parent ae4d918867
commit 5fb149c018
3 changed files with 29 additions and 8 deletions

View file

@ -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
@ -97,7 +98,21 @@ class TapApplication : Application(), ImageLoaderFactory {
val infoHolder = AdditionalEmailInfo()
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)))

View file

@ -5,6 +5,7 @@ import android.content.Context
import android.content.pm.PackageManager
import android.os.Build
import com.tangem.Log
import com.tangem.LogFormat
import com.tangem.TangemSdkLogger
import com.tangem.blockchain.common.*
import com.tangem.domain.common.ScanResponse
@ -81,23 +82,28 @@ class FeedbackManager(
}
}
class TangemLogCollector : TangemSdkLogger {
class TangemLogCollector(
private val levels: List<Log.Level>,
private val messageFormatter: LogFormat
) : TangemSdkLogger {
private val dateFormatter = SimpleDateFormat("HH:mm:ss.SSS")
private val logs = mutableListOf<String>()
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<String> = synchronized(mutex) { logs.toList() }
fun clearLogs() {
synchronized(mutex) { logs.clear() }
}
fun clearLogs() = synchronized(mutex) { logs.clear() }
}
class AdditionalEmailInfo {

View file

@ -1,7 +1,7 @@
ext.versions = [
kotlin : '1.6.10',
build_gradle : '7.1.3',
tamgem_card_sdk : 'develop-154',
tamgem_card_sdk : 'develop-157',
tamgem_blockchain_sdk: 'develop-93',
]