Iterate on tracing configuration

- Add targets matrix_sdk, matrix_sdk::client and matrix_sdk::oidc
- introduce default log level.
This commit is contained in:
Benoit Marty 2023-09-06 15:04:21 +02:00 committed by Benoit Marty
parent f03cbc1c2e
commit 5f77740533
2 changed files with 8 additions and 11 deletions

View file

@ -29,7 +29,6 @@ class TargetLogLevelMapBuilder @Inject constructor(
fun getDefaultMap(): Map<Target, LogLevel> { fun getDefaultMap(): Map<Target, LogLevel> {
return Target.entries.associateWith { target -> return Target.entries.associateWith { target ->
defaultConfig.getLogLevel(target) defaultConfig.getLogLevel(target)
?: LogLevel.INFO
} }
} }
@ -37,7 +36,6 @@ class TargetLogLevelMapBuilder @Inject constructor(
return Target.entries.associateWith { target -> return Target.entries.associateWith { target ->
tracingConfigurationStore.getLogLevel(target) tracingConfigurationStore.getLogLevel(target)
?: defaultConfig.getLogLevel(target) ?: defaultConfig.getLogLevel(target)
?: LogLevel.INFO
} }
} }
} }

View file

@ -19,27 +19,25 @@ package io.element.android.libraries.matrix.api.tracing
data class TracingFilterConfiguration( data class TracingFilterConfiguration(
val overrides: Map<Target, LogLevel> = emptyMap(), val overrides: Map<Target, LogLevel> = emptyMap(),
) { ) {
private val defaultLogLevel = LogLevel.INFO
// Order should matters // Order should matters
private val targetsToLogLevel: Map<Target, LogLevel> = mapOf( private val targetsToLogLevel: Map<Target, LogLevel> = mapOf(
Target.COMMON to LogLevel.INFO,
Target.HYPER to LogLevel.WARN, Target.HYPER to LogLevel.WARN,
Target.MATRIX_SDK_CRYPTO to LogLevel.DEBUG, Target.MATRIX_SDK_CRYPTO to LogLevel.DEBUG,
Target.MATRIX_SDK_HTTP_CLIENT to LogLevel.DEBUG, Target.MATRIX_SDK_HTTP_CLIENT to LogLevel.DEBUG,
Target.MATRIX_SDK_SLIDING_SYNC to LogLevel.TRACE, Target.MATRIX_SDK_SLIDING_SYNC to LogLevel.TRACE,
Target.MATRIX_SDK_BASE_SLIDING_SYNC to LogLevel.TRACE, Target.MATRIX_SDK_BASE_SLIDING_SYNC to LogLevel.TRACE,
Target.MATRIX_SDK_UI_TIMELINE to LogLevel.INFO,
) )
fun getLogLevel(target: Target): LogLevel? { fun getLogLevel(target: Target): LogLevel {
return overrides[target] ?: targetsToLogLevel[target] return overrides[target] ?: targetsToLogLevel[target] ?: defaultLogLevel
} }
val filter: String val filter: String
get() { get() {
val fullMap = targetsToLogLevel.toMutableMap() val fullMap = Target.values().associateWith {
overrides.forEach { (target, logLevel) -> overrides[it] ?: targetsToLogLevel[it] ?: defaultLogLevel
fullMap[target] = logLevel
} }
return fullMap.map { return fullMap.map {
if (it.key.filter.isEmpty()) { if (it.key.filter.isEmpty()) {
@ -58,7 +56,10 @@ enum class Target(open val filter: String) {
MATRIX_SDK_FFI("matrix_sdk_ffi"), MATRIX_SDK_FFI("matrix_sdk_ffi"),
MATRIX_SDK_UNIFFI_API("matrix_sdk_ffi::uniffi_api"), MATRIX_SDK_UNIFFI_API("matrix_sdk_ffi::uniffi_api"),
MATRIX_SDK_CRYPTO("matrix_sdk_crypto"), MATRIX_SDK_CRYPTO("matrix_sdk_crypto"),
MATRIX_SDK("matrix_sdk"),
MATRIX_SDK_HTTP_CLIENT("matrix_sdk::http_client"), MATRIX_SDK_HTTP_CLIENT("matrix_sdk::http_client"),
MATRIX_SDK_CLIENT("matrix_sdk::client"),
MATRIX_SDK_OIDC("matrix_sdk::oidc"),
MATRIX_SDK_SLIDING_SYNC("matrix_sdk::sliding_sync"), MATRIX_SDK_SLIDING_SYNC("matrix_sdk::sliding_sync"),
MATRIX_SDK_BASE_SLIDING_SYNC("matrix_sdk_base::sliding_sync"), MATRIX_SDK_BASE_SLIDING_SYNC("matrix_sdk_base::sliding_sync"),
MATRIX_SDK_UI_TIMELINE("matrix_sdk_ui::timeline"), MATRIX_SDK_UI_TIMELINE("matrix_sdk_ui::timeline"),
@ -75,13 +76,11 @@ enum class LogLevel(open val filter: String) {
object TracingFilterConfigurations { object TracingFilterConfigurations {
val release = TracingFilterConfiguration( val release = TracingFilterConfiguration(
overrides = mapOf( overrides = mapOf(
Target.COMMON to LogLevel.INFO,
Target.ELEMENT to LogLevel.DEBUG Target.ELEMENT to LogLevel.DEBUG
), ),
) )
val debug = TracingFilterConfiguration( val debug = TracingFilterConfiguration(
overrides = mapOf( overrides = mapOf(
Target.COMMON to LogLevel.INFO,
Target.ELEMENT to LogLevel.TRACE Target.ELEMENT to LogLevel.TRACE
) )
) )