@@ -14,8 +14,10 @@ import io.sentry.ITransportFactory
1414import io.sentry.InitPriority
1515import io.sentry.Sentry
1616import io.sentry.SentryLevel
17+ import io.sentry.SentryLogLevel
1718import io.sentry.SentryOptions
1819import io.sentry.checkEvent
20+ import io.sentry.checkLogs
1921import io.sentry.test.initForTest
2022import io.sentry.transport.ITransport
2123import org.mockito.kotlin.any
@@ -40,7 +42,7 @@ import kotlin.test.assertNull
4042import kotlin.test.assertTrue
4143
4244class SentryAppenderTest {
43- private class Fixture (dsn : String? = " http://key@localhost/proj" , minimumBreadcrumbLevel : Level ? = null , minimumEventLevel : Level ? = null , contextTags : List <String >? = null , encoder : Encoder <ILoggingEvent >? = null , sendDefaultPii : Boolean = false , options : SentryOptions = SentryOptions (), startLater : Boolean = false ) {
45+ private class Fixture (dsn : String? = " http://key@localhost/proj" , minimumBreadcrumbLevel : Level ? = null , minimumEventLevel : Level ? = null , minimumLevel : Level ? = null , contextTags : List <String >? = null , encoder : Encoder <ILoggingEvent >? = null , sendDefaultPii : Boolean = false , enableLogs : Boolean = false , options : SentryOptions = SentryOptions (), startLater : Boolean = false ) {
4446 val logger: Logger = LoggerFactory .getLogger(SentryAppenderTest ::class .java)
4547 val loggerContext = LoggerFactory .getILoggerFactory() as LoggerContext
4648 val transportFactory = mock<ITransportFactory >()
@@ -54,10 +56,12 @@ class SentryAppenderTest {
5456 this .encoder = encoder
5557 options.dsn = dsn
5658 options.isSendDefaultPii = sendDefaultPii
59+ options.logs.isEnabled = enableLogs
5760 contextTags?.forEach { options.addContextTag(it) }
5861 appender.setOptions(options)
5962 appender.setMinimumBreadcrumbLevel(minimumBreadcrumbLevel)
6063 appender.setMinimumEventLevel(minimumEventLevel)
64+ appender.setMinimumLevel(minimumLevel)
6165 appender.context = loggerContext
6266 appender.setTransportFactory(transportFactory)
6367 encoder?.context = loggerContext
@@ -312,6 +316,76 @@ class SentryAppenderTest {
312316 )
313317 }
314318
319+ @Test
320+ fun `converts trace log level to Sentry log level` () {
321+ fixture = Fixture (minimumLevel = Level .TRACE , enableLogs = true )
322+ fixture.logger.trace(" testing trace level" )
323+
324+ Sentry .flush(1000 )
325+
326+ verify(fixture.transport).send(
327+ checkLogs { logs ->
328+ assertEquals(SentryLogLevel .TRACE , logs.items.first().level)
329+ }
330+ )
331+ }
332+
333+ @Test
334+ fun `converts debug log level to Sentry log level` () {
335+ fixture = Fixture (minimumLevel = Level .DEBUG , enableLogs = true )
336+ fixture.logger.debug(" testing debug level" )
337+
338+ Sentry .flush(1000 )
339+
340+ verify(fixture.transport).send(
341+ checkLogs { logs ->
342+ assertEquals(SentryLogLevel .DEBUG , logs.items.first().level)
343+ }
344+ )
345+ }
346+
347+ @Test
348+ fun `converts info log level to Sentry log level` () {
349+ fixture = Fixture (minimumLevel = Level .INFO , enableLogs = true )
350+ fixture.logger.info(" testing info level" )
351+
352+ Sentry .flush(1000 )
353+
354+ verify(fixture.transport).send(
355+ checkLogs { logs ->
356+ assertEquals(SentryLogLevel .INFO , logs.items.first().level)
357+ }
358+ )
359+ }
360+
361+ @Test
362+ fun `converts warn log level to Sentry log level` () {
363+ fixture = Fixture (minimumLevel = Level .WARN , enableLogs = true )
364+ fixture.logger.warn(" testing warn level" )
365+
366+ Sentry .flush(1000 )
367+
368+ verify(fixture.transport).send(
369+ checkLogs { logs ->
370+ assertEquals(SentryLogLevel .WARN , logs.items.first().level)
371+ }
372+ )
373+ }
374+
375+ @Test
376+ fun `converts error log level to Sentry log level` () {
377+ fixture = Fixture (minimumLevel = Level .ERROR , enableLogs = true )
378+ fixture.logger.error(" testing error level" )
379+
380+ Sentry .flush(1000 )
381+
382+ verify(fixture.transport).send(
383+ checkLogs { logs ->
384+ assertEquals(SentryLogLevel .ERROR , logs.items.first().level)
385+ }
386+ )
387+ }
388+
315389 @Test
316390 fun `attaches thread information` () {
317391 fixture = Fixture (minimumEventLevel = Level .WARN )
0 commit comments