Skip to content

Commit b148e45

Browse files
committed
test log4j2
1 parent e6bd7a3 commit b148e45

1 file changed

Lines changed: 57 additions & 0 deletions

File tree

sentry-log4j2/src/test/kotlin/io/sentry/log4j2/SentryAppenderTest.kt

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ import org.apache.logging.log4j.core.LoggerContext
2929
import org.apache.logging.log4j.core.config.AppenderRef
3030
import org.apache.logging.log4j.core.config.Configuration
3131
import org.apache.logging.log4j.core.config.LoggerConfig
32+
import org.apache.logging.log4j.core.layout.PatternLayout
3233
import org.apache.logging.log4j.spi.ExtendedLogger
3334
import org.mockito.kotlin.any
3435
import org.mockito.kotlin.anyOrNull
@@ -60,6 +61,7 @@ class SentryAppenderTest {
6061
}
6162
loggerContext.start()
6263
val config: Configuration = loggerContext.configuration
64+
6365
val appender =
6466
SentryAppender(
6567
"sentry",
@@ -533,4 +535,59 @@ class SentryAppenderTest {
533535
fixture.getSut(debug = true)
534536
assertTrue(ScopesAdapter.getInstance().options.isDebug)
535537
}
538+
539+
@Test
540+
fun `does not set template on log when logging message without parameters`() {
541+
val logger = fixture.getSut(minimumLevel = Level.ERROR)
542+
logger.error("testing message without parameters")
543+
544+
Sentry.flush(1000)
545+
546+
verify(fixture.transport)
547+
.send(
548+
checkLogs { logs ->
549+
val log = logs.items.first()
550+
assertEquals("testing message without parameters", log.body)
551+
assertNull(log.attributes?.get("sentry.message.template"))
552+
}
553+
)
554+
}
555+
556+
@Test
557+
fun `sets template on log when logging message with parameters`() {
558+
val logger = fixture.getSut(minimumLevel = Level.ERROR)
559+
logger.error("testing message {}", "param")
560+
561+
Sentry.flush(1000)
562+
563+
verify(fixture.transport)
564+
.send(
565+
checkLogs { logs ->
566+
val log = logs.items.first()
567+
assertEquals("testing message param", log.body)
568+
assertEquals("testing message {}", log.attributes?.get("sentry.message.template")?.value)
569+
assertEquals("param", log.attributes?.get("sentry.message.parameter.0")?.value)
570+
}
571+
)
572+
}
573+
574+
@Test
575+
fun `sets template on log when logging message with parameters and number of parameters is wrong`() {
576+
val logger = fixture.getSut(minimumLevel = Level.ERROR)
577+
logger.error("testing message {} {} {}", "param1", "param2")
578+
579+
Sentry.flush(1000)
580+
581+
verify(fixture.transport)
582+
.send(
583+
checkLogs { logs ->
584+
val log = logs.items.first()
585+
assertEquals("testing message param1 param2 {}", log.body)
586+
assertEquals("testing message {} {} {}", log.attributes?.get("sentry.message.template")?.value)
587+
assertEquals("param1", log.attributes?.get("sentry.message.parameter.0")?.value)
588+
assertEquals("param2", log.attributes?.get("sentry.message.parameter.1")?.value)
589+
assertNull(log.attributes?.get("sentry.message.parameter.2"))
590+
}
591+
)
592+
}
536593
}

0 commit comments

Comments
 (0)