Skip to content

Commit 8b6cd3e

Browse files
committed
Log timber tag as attribute
1 parent 539ca63 commit 8b6cd3e

File tree

2 files changed

+28
-3
lines changed

2 files changed

+28
-3
lines changed

sentry-android-timber/src/main/java/io/sentry/android/timber/SentryTimberTree.kt

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ package io.sentry.android.timber
33
import android.util.Log
44
import io.sentry.Breadcrumb
55
import io.sentry.IScopes
6+
import io.sentry.SentryAttribute
7+
import io.sentry.SentryAttributes
68
import io.sentry.SentryEvent
79
import io.sentry.SentryLevel
810
import io.sentry.SentryLogLevel
@@ -183,7 +185,7 @@ public class SentryTimberTree(
183185

184186
captureEvent(level, tag, sentryMessage, throwable)
185187
addBreadcrumb(level, sentryMessage, throwable)
186-
addLog(logLevel, message, throwable, *args)
188+
addLog(logLevel, message, tag, throwable, *args)
187189
}
188190

189191
/** do not log if it's lower than min. required level. */
@@ -240,12 +242,15 @@ public class SentryTimberTree(
240242
private fun addLog(
241243
sentryLogLevel: SentryLogLevel,
242244
msg: String?,
245+
tag: String?,
243246
throwable: Throwable?,
244247
vararg args: Any?,
245248
) {
246249
// checks the log level
247250
if (isLoggable(sentryLogLevel, minLogLevel)) {
248-
val params = SentryLogParameters()
251+
val attributes =
252+
tag?.let { SentryAttributes.of(SentryAttribute.stringAttribute("timber.tag", tag)) }
253+
val params = SentryLogParameters.create(attributes)
249254
params.origin = "auto.log.timber"
250255

251256
val throwableMsg = throwable?.message

sentry-android-timber/src/test/java/io/sentry/android/timber/SentryTimberTreeTest.kt

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -334,8 +334,28 @@ class SentryTimberTreeTest {
334334
verify(fixture.logs)
335335
.log(
336336
eq(SentryLogLevel.ERROR),
337-
check<SentryLogParameters> { assertEquals("auto.log.timber", it.origin) },
337+
check<SentryLogParameters> {
338+
assertEquals("auto.log.timber", it.origin)
339+
assertEquals(null, it.attributes?.attributes?.get("timber.tag"))
340+
},
338341
eq("My message\nthrowable message"),
339342
)
340343
}
344+
345+
@Test
346+
fun `Tree logs timber tag`() {
347+
val sut = fixture.getSut()
348+
Timber.plant(sut)
349+
Timber.tag("timberTag").i("message")
350+
351+
verify(fixture.logs)
352+
.log(
353+
eq(SentryLogLevel.INFO),
354+
check<SentryLogParameters> {
355+
assertEquals("auto.log.timber", it.origin)
356+
assertEquals("timberTag", it.attributes?.attributes?.get("timber.tag")?.value)
357+
},
358+
eq("message"),
359+
)
360+
}
341361
}

0 commit comments

Comments
 (0)