Skip to content

Commit 1a43213

Browse files
committed
refactor(common): replace Timber with SLF4J
`:common` will be moved to a `java-library`. SLF4J is bridged to Timber via slf4j-timber in the app, so logs will continue to work. Due to this, fewer classes will need to move to `:common:android` Using 1.7.30 as this is the current transitive dependency Assisted-by: Claude Opus 4.6
1 parent b9e52b1 commit 1a43213

4 files changed

Lines changed: 16 additions & 7 deletions

File tree

common/build.gradle.kts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ dependencies {
5050
implementation(libs.androidx.appcompat)
5151
implementation(libs.google.material)
5252
implementation(libs.jakewharton.timber)
53+
implementation(libs.slf4j.api)
5354
testImplementation(libs.junit.jupiter)
5455
testImplementation(libs.junit.vintage.engine)
5556
testImplementation(libs.hamcrest)
@@ -60,6 +61,7 @@ dependencies {
6061

6162
testFixturesImplementation(libs.hamcrest)
6263
testFixturesImplementation(libs.jakewharton.timber)
64+
testFixturesImplementation(libs.slf4j.api)
6365
testFixturesImplementation(libs.androidx.annotation)
6466
// Required so the ExperimentalCoroutinesApi opt-in (applied globally) doesn't cause
6567
// an "unresolved" warning, which is treated as an error due to allWarningsAsErrors

common/src/main/java/com/ichi2/anki/common/utils/TestUtils.kt

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,9 @@
1313
*/
1414
package com.ichi2.anki.common.utils
1515

16-
import timber.log.Timber
16+
import org.slf4j.LoggerFactory
17+
18+
private val logger = LoggerFactory.getLogger("TestUtils")
1719

1820
/** make default HTML / JS debugging true for debug build and disable for unit/android tests
1921
* isRunningAsUnitTest checks if we are in debug or testing environment by checking if org.junit.Test class
@@ -25,9 +27,9 @@ val isRunningAsUnitTest: Boolean
2527
try {
2628
Class.forName("org.junit.Test")
2729
} catch (ignored: ClassNotFoundException) {
28-
Timber.d("isRunningAsUnitTest: %b", false)
30+
logger.debug("isRunningAsUnitTest: {}", false)
2931
return false
3032
}
31-
Timber.d("isRunningAsUnitTest: %b", true)
33+
logger.debug("isRunningAsUnitTest: {}", true)
3234
return true
3335
}

common/src/testFixtures/java/com/ichi2/testutils/FileSystemUtils.kt

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,16 +19,18 @@ package com.ichi2.testutils
1919
import androidx.annotation.CheckResult
2020
import org.hamcrest.CoreMatchers
2121
import org.hamcrest.MatcherAssert
22-
import timber.log.Timber
22+
import org.slf4j.LoggerFactory
2323
import java.io.File
2424
import kotlin.io.path.createTempDirectory
2525
import kotlin.io.path.pathString
2626

2727
/** Utilities which assist testing changes to files/directories */
28+
private val logger = LoggerFactory.getLogger(FileSystemUtils::class.java)
29+
2830
@Suppress("unused")
2931
object FileSystemUtils {
3032
/**
31-
* Prints a directory structure using [Timber.d]
33+
* Prints a directory structure
3234
* @param description The prefix to print before the tree is listed
3335
* @param file the root of the tree to print
3436
*
@@ -47,7 +49,7 @@ object FileSystemUtils {
4749
description: String,
4850
file: File,
4951
) {
50-
Timber.d("$description: $file\n${printDirectoryTree(file)}")
52+
logger.debug("$description: $file\n${printDirectoryTree(file)}")
5153
}
5254

5355
/** from https://stackoverflow.com/a/13130974/ */
@@ -135,7 +137,7 @@ fun createTransientFile(
135137
fun File.createTransientDirectory(name: String): File {
136138
File(this, name).also { directory ->
137139
directory.deleteOnExit()
138-
Timber.d("test: creating $directory")
140+
logger.debug("test: creating $directory")
139141
MatcherAssert.assertThat("directory should have been created", directory.mkdirs(), CoreMatchers.equalTo(true))
140142
return directory
141143
}

gradle/libs.versions.toml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,8 @@ searchpreference = "2.7.3"
115115
seismic = "1.0.3"
116116
sharedPreferencesMock = "1.2.4"
117117
slackKeeper = "0.16.1"
118+
# https://github.com/qos-ch/slf4j
119+
slf4j = "1.7.30"
118120
slf4jTimber = "3.1"
119121
timber = "5.0.1"
120122
# https://github.com/Triple-T/gradle-play-publisher/releases
@@ -176,6 +178,7 @@ android-lint-tests = { module = "com.android.tools.lint:lint-tests", version.ref
176178
protobuf-kotlin-lite = { module = "com.google.protobuf:protobuf-kotlin-lite", version.ref = "protobufKotlinLite" }
177179
search-preference = { module = "com.github.ByteHamster:SearchPreference", version.ref = "searchpreference" }
178180
seismic = { module = "com.squareup:seismic", version.ref = "seismic" }
181+
slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "slf4j" }
179182
slf4j-timber = { module = "com.arcao:slf4j-timber", version.ref = "slf4jTimber" }
180183
jakewharton-timber = { module = "com.jakewharton.timber:timber", version.ref = "timber" }
181184
androidx-work-runtime = { group = "androidx.work", name = "work-runtime-ktx", version.ref = "androidxWork" }

0 commit comments

Comments
 (0)