From e22ac6a48d56b21e73604e4cfdf090df15d262f8 Mon Sep 17 00:00:00 2001 From: Jorge Martin Espinosa Date: Fri, 26 Jan 2024 10:05:30 +0100 Subject: [PATCH] Add a special tracing configuration for nightlies (#2297) It also enables logging `MATRIX_SDK_BASE_READ_RECEIPTS` at a `TRACE` level for both debug and nightly versions. --- .../android/x/initializer/TracingInitializer.kt | 7 ++++++- ...-special-tracing-configuration-for-nightlies.misc | 1 + .../matrix/api/tracing/TracingFilterConfiguration.kt | 12 ++++++++++-- 3 files changed, 17 insertions(+), 3 deletions(-) create mode 100644 changelog.d/+add-special-tracing-configuration-for-nightlies.misc diff --git a/app/src/main/kotlin/io/element/android/x/initializer/TracingInitializer.kt b/app/src/main/kotlin/io/element/android/x/initializer/TracingInitializer.kt index 5a7bf0fb82..7afcc49e6d 100644 --- a/app/src/main/kotlin/io/element/android/x/initializer/TracingInitializer.kt +++ b/app/src/main/kotlin/io/element/android/x/initializer/TracingInitializer.kt @@ -46,8 +46,13 @@ class TracingInitializer : Initializer { writesToFilesConfiguration = WriteToFilesConfiguration.Disabled ) } else { + val config = if (BuildConfig.BUILD_TYPE == "nightly") { + TracingFilterConfigurations.nightly + } else { + TracingFilterConfigurations.release + } TracingConfiguration( - filterConfiguration = TracingFilterConfigurations.release, + filterConfiguration = config, writesToLogcat = false, writesToFilesConfiguration = WriteToFilesConfiguration.Enabled( directory = bugReporter.logDirectory().absolutePath, diff --git a/changelog.d/+add-special-tracing-configuration-for-nightlies.misc b/changelog.d/+add-special-tracing-configuration-for-nightlies.misc new file mode 100644 index 0000000000..89f72f4332 --- /dev/null +++ b/changelog.d/+add-special-tracing-configuration-for-nightlies.misc @@ -0,0 +1 @@ +Add a special logging configuration for nightlies so we can get more detailed info for existing issues. diff --git a/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/tracing/TracingFilterConfiguration.kt b/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/tracing/TracingFilterConfiguration.kt index 5cd6750552..114c7df0cb 100644 --- a/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/tracing/TracingFilterConfiguration.kt +++ b/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/tracing/TracingFilterConfiguration.kt @@ -29,6 +29,7 @@ data class TracingFilterConfiguration( Target.MATRIX_SDK_SLIDING_SYNC to LogLevel.TRACE, Target.MATRIX_SDK_BASE_SLIDING_SYNC to LogLevel.TRACE, Target.MATRIX_SDK_UI_TIMELINE to LogLevel.TRACE, + Target.MATRIX_SDK_BASE_READ_RECEIPTS to LogLevel.TRACE, ) fun getLogLevel(target: Target): LogLevel { @@ -37,7 +38,7 @@ data class TracingFilterConfiguration( val filter: String get() { - val fullMap = Target.values().associateWith { + val fullMap = Target.entries.associateWith { overrides[it] ?: targetsToLogLevel[it] ?: defaultLogLevel } return fullMap.map { @@ -64,6 +65,7 @@ enum class Target(open val filter: String) { MATRIX_SDK_SLIDING_SYNC("matrix_sdk::sliding_sync"), MATRIX_SDK_BASE_SLIDING_SYNC("matrix_sdk_base::sliding_sync"), MATRIX_SDK_UI_TIMELINE("matrix_sdk_ui::timeline"), + MATRIX_SDK_BASE_READ_RECEIPTS("matrix_sdk_base::read_receipts"), } enum class LogLevel(open val filter: String) { @@ -80,6 +82,12 @@ object TracingFilterConfigurations { Target.ELEMENT to LogLevel.DEBUG ), ) + val nightly = TracingFilterConfiguration( + overrides = mapOf( + Target.ELEMENT to LogLevel.TRACE, + Target.MATRIX_SDK_BASE_READ_RECEIPTS to LogLevel.TRACE, + ), + ) val debug = TracingFilterConfiguration( overrides = mapOf( Target.ELEMENT to LogLevel.TRACE @@ -89,7 +97,7 @@ object TracingFilterConfigurations { /** * Use this method to create a custom configuration where all targets will have the same log level. */ - fun custom(logLevel: LogLevel) = TracingFilterConfiguration(overrides = Target.values().associateWith { logLevel }) + fun custom(logLevel: LogLevel) = TracingFilterConfiguration(overrides = Target.entries.associateWith { logLevel }) /** * Use this method to override the log level of specific targets.