@@ -711,4 +711,99 @@ class SentryAppenderTest {
711711 anyOrNull(),
712712 )
713713 }
714+
715+ @Test
716+ fun `does not set template on log when logging message without parameters` () {
717+ fixture = Fixture (minimumLevel = Level .ERROR , enableLogs = true )
718+ fixture.logger.error(" testing message without parameters" )
719+
720+ Sentry .flush(1000 )
721+
722+ verify(fixture.transport)
723+ .send(
724+ checkLogs { logs ->
725+ val log = logs.items.first()
726+ assertEquals(" testing message without parameters" , log.body)
727+ assertNull(log.attributes?.get(" sentry.message.template" ))
728+ }
729+ )
730+ }
731+
732+ @Test
733+ fun `sets template on log when logging message with parameters` () {
734+ fixture = Fixture (minimumLevel = Level .ERROR , enableLogs = true )
735+ fixture.logger.error(" testing message {}" , " param" )
736+
737+ Sentry .flush(1000 )
738+
739+ verify(fixture.transport)
740+ .send(
741+ checkLogs { logs ->
742+ val log = logs.items.first()
743+ assertEquals(" testing message param" , log.body)
744+ assertEquals(" testing message {}" , log.attributes?.get(" sentry.message.template" )?.value)
745+ assertEquals(" param" , log.attributes?.get(" sentry.message.parameter.0" )?.value)
746+ }
747+ )
748+ }
749+
750+ @Test
751+ fun `sets template on log when logging message with parameters and number of parameters is wrong` () {
752+ fixture = Fixture (minimumLevel = Level .ERROR , enableLogs = true )
753+ fixture.logger.error(" testing message {} {} {}" , " param1" , " param2" )
754+
755+ Sentry .flush(1000 )
756+
757+ verify(fixture.transport)
758+ .send(
759+ checkLogs { logs ->
760+ val log = logs.items.first()
761+ assertEquals(" testing message param1 param2 {}" , log.body)
762+ assertEquals(" testing message {} {} {}" , log.attributes?.get(" sentry.message.template" )?.value)
763+ assertEquals(" param1" , log.attributes?.get(" sentry.message.parameter.0" )?.value)
764+ assertEquals(" param2" , log.attributes?.get(" sentry.message.parameter.1" )?.value)
765+ assertNull(log.attributes?.get(" sentry.message.parameter.2" ))
766+ }
767+ )
768+ }
769+
770+ @Test
771+ fun `does not set template or attributes on log with encoder when sendDefaultPii is false` () {
772+ var encoder = PatternLayoutEncoder ()
773+ encoder.pattern = " encoded %msg"
774+ fixture = Fixture (minimumLevel = Level .ERROR , enableLogs = true , encoder = encoder, sendDefaultPii = false )
775+ fixture.logger.error(" testing message {}" , " param" )
776+
777+ Sentry .flush(1000 )
778+
779+ verify(fixture.transport)
780+ .send(
781+ checkLogs { logs ->
782+ val log = logs.items.first()
783+ assertEquals(" encoded testing message param" , log.body)
784+ assertNull(log.attributes?.get(" sentry.message.template" ))
785+ assertNull(log.attributes?.get(" sentry.message.parameter.0" ))
786+ }
787+ )
788+ }
789+
790+ @Test
791+ fun `sets template and attributes on log with encoder when sendDefaultPii is true` () {
792+ var encoder = PatternLayoutEncoder ()
793+ encoder.pattern = " encoded %msg"
794+ fixture = Fixture (minimumLevel = Level .ERROR , enableLogs = true , encoder = encoder, sendDefaultPii = true )
795+ fixture.logger.error(" testing message {}" , " param" )
796+
797+ Sentry .flush(1000 )
798+
799+ verify(fixture.transport)
800+ .send(
801+ checkLogs { logs ->
802+ val log = logs.items.first()
803+ assertEquals(" encoded testing message param" , log.body)
804+ assertEquals(" testing message {}" , log.attributes?.get(" sentry.message.template" )?.value)
805+ assertEquals(" param" , log.attributes?.get(" sentry.message.parameter.0" )?.value)
806+ }
807+ )
808+ }
714809}
0 commit comments