Skip to content

Commit

Permalink
Capture markers in logback and log4j2 appenders
Browse files Browse the repository at this point in the history
  • Loading branch information
anderscarling committed Jun 22, 2021
1 parent a5f30b4 commit cb4fc44
Show file tree
Hide file tree
Showing 4 changed files with 43 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -155,6 +155,10 @@ public void append(final @NotNull LogEvent eventObject) {
event.setExtra("thread_name", loggingEvent.getThreadName());
}

if (loggingEvent.getMarker() != null) {
event.setExtra("marker", loggingEvent.getMarker().toString());
}

final Map<String, String> contextData =
CollectionUtils.filterMapEntries(
loggingEvent.getContextData().toMap(), entry -> entry.getValue() != null);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ import kotlin.test.assertNull
import kotlin.test.assertTrue
import org.apache.logging.log4j.Level
import org.apache.logging.log4j.LogManager
import org.apache.logging.log4j.MarkerManager
import org.apache.logging.log4j.ThreadContext
import org.apache.logging.log4j.core.LoggerContext
import org.apache.logging.log4j.core.config.AppenderRef
Expand Down Expand Up @@ -274,6 +275,23 @@ class SentryAppenderTest {
}
}

@Test
fun `attaches marker information`() {
val logger = fixture.getSut(minimumEventLevel = Level.WARN)
val sqlMarker = MarkerManager.getMarker("SQL").setParents(
MarkerManager.getMarker("SQL_QUERY"),
MarkerManager.getMarker("SQL_UPDATE")
)

logger.warn(sqlMarker, "testing marker tags")

await.untilAsserted {
verify(fixture.transport).send(checkEvent { event ->
assertEquals("SQL[ SQL_QUERY, SQL_UPDATE ]", event.getExtra("marker"))
}, anyOrNull())
}
}

@Test
fun `sets SDK version`() {
val logger = fixture.getSut(minimumEventLevel = Level.INFO)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,10 @@ protected void append(@NotNull ILoggingEvent eventObject) {
event.setExtra("thread_name", loggingEvent.getThreadName());
}

if (loggingEvent.getMarker() != null) {
event.setExtra("marker", loggingEvent.getMarker().toString());
}

// remove keys with null values, there is no sense to send these keys to Sentry
final Map<String, String> mdcProperties =
CollectionUtils.filterMapEntries(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ import kotlin.test.assertTrue
import org.awaitility.kotlin.await
import org.slf4j.Logger
import org.slf4j.LoggerFactory
import org.slf4j.MarkerFactory
import org.slf4j.MDC

class SentryAppenderTest {
Expand Down Expand Up @@ -251,6 +252,22 @@ class SentryAppenderTest {
}
}

@Test
fun `attaches marker information`() {
fixture = Fixture(minimumEventLevel = Level.WARN)
val sqlMarker = MarkerFactory.getDetachedMarker("SQL")
sqlMarker.add(MarkerFactory.getDetachedMarker("SQL_UPDATE"))
sqlMarker.add(MarkerFactory.getDetachedMarker("SQL_QUERY"))

fixture.logger.warn(sqlMarker, "testing marker tags")

await.untilAsserted {
verify(fixture.transport).send(checkEvent { event ->
assertEquals("SQL [ SQL_UPDATE, SQL_QUERY ]", event.getExtra("marker"))
}, anyOrNull())
}
}

@Test
fun `sets SDK version`() {
fixture = Fixture(minimumEventLevel = Level.INFO)
Expand Down

0 comments on commit cb4fc44

Please sign in to comment.