diff --git a/timber/src/main/java/timber/log/Timber.kt b/timber/src/main/java/timber/log/Timber.kt index 62b6a0759..8f6e0f13b 100644 --- a/timber/src/main/java/timber/log/Timber.kt +++ b/timber/src/main/java/timber/log/Timber.kt @@ -193,13 +193,13 @@ class Timber private constructor() { } /** A [Tree] for debug builds. Automatically infers the tag from the calling class. */ - open class DebugTree : Tree() { - private val fqcnIgnore = listOf( + open class DebugTree(vararg ignoredClasses: Class<*>) : Tree() { + private val fqcnIgnore = setOf( Timber::class.java.name, Timber.Forest::class.java.name, Tree::class.java.name, DebugTree::class.java.name - ) + ).plus(ignoredClasses.map { it.name }) override val tag: String? get() = super.tag ?: Throwable().stackTrace diff --git a/timber/src/test/java/timber/log/TimberTest.kt b/timber/src/test/java/timber/log/TimberTest.kt index 126c50dc9..37ffc598a 100644 --- a/timber/src/test/java/timber/log/TimberTest.kt +++ b/timber/src/test/java/timber/log/TimberTest.kt @@ -209,6 +209,17 @@ class TimberTest { .hasNoMoreMessages() } + @Test fun debugTreeDoesNotUseIgnoredClassForTag() { + val tree = Timber.DebugTree(ThisIsAReallyLongClassName::class.java) + Timber.plant(tree) + + ThisIsAReallyLongClassName().run() + + assertLog() + .hasDebugMessage("TimberTest", "Hello, world!") + .hasNoMoreMessages() + } + @Test fun debugTreeCustomTag() { Timber.plant(Timber.DebugTree()) Timber.tag("Custom").d("Hello, world!")