Skip to content

Commit cb4fc44

Browse files
committed
Capture markers in logback and log4j2 appenders
1 parent a5f30b4 commit cb4fc44

File tree

4 files changed

+43
-0
lines changed

4 files changed

+43
-0
lines changed

sentry-log4j2/src/main/java/io/sentry/log4j2/SentryAppender.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,10 @@ public void append(final @NotNull LogEvent eventObject) {
155155
event.setExtra("thread_name", loggingEvent.getThreadName());
156156
}
157157

158+
if (loggingEvent.getMarker() != null) {
159+
event.setExtra("marker", loggingEvent.getMarker().toString());
160+
}
161+
158162
final Map<String, String> contextData =
159163
CollectionUtils.filterMapEntries(
160164
loggingEvent.getContextData().toMap(), entry -> entry.getValue() != null);

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

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import kotlin.test.assertNull
2424
import kotlin.test.assertTrue
2525
import org.apache.logging.log4j.Level
2626
import org.apache.logging.log4j.LogManager
27+
import org.apache.logging.log4j.MarkerManager
2728
import org.apache.logging.log4j.ThreadContext
2829
import org.apache.logging.log4j.core.LoggerContext
2930
import org.apache.logging.log4j.core.config.AppenderRef
@@ -274,6 +275,23 @@ class SentryAppenderTest {
274275
}
275276
}
276277

278+
@Test
279+
fun `attaches marker information`() {
280+
val logger = fixture.getSut(minimumEventLevel = Level.WARN)
281+
val sqlMarker = MarkerManager.getMarker("SQL").setParents(
282+
MarkerManager.getMarker("SQL_QUERY"),
283+
MarkerManager.getMarker("SQL_UPDATE")
284+
)
285+
286+
logger.warn(sqlMarker, "testing marker tags")
287+
288+
await.untilAsserted {
289+
verify(fixture.transport).send(checkEvent { event ->
290+
assertEquals("SQL[ SQL_QUERY, SQL_UPDATE ]", event.getExtra("marker"))
291+
}, anyOrNull())
292+
}
293+
}
294+
277295
@Test
278296
fun `sets SDK version`() {
279297
val logger = fixture.getSut(minimumEventLevel = Level.INFO)

sentry-logback/src/main/java/io/sentry/logback/SentryAppender.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,10 @@ protected void append(@NotNull ILoggingEvent eventObject) {
9191
event.setExtra("thread_name", loggingEvent.getThreadName());
9292
}
9393

94+
if (loggingEvent.getMarker() != null) {
95+
event.setExtra("marker", loggingEvent.getMarker().toString());
96+
}
97+
9498
// remove keys with null values, there is no sense to send these keys to Sentry
9599
final Map<String, String> mdcProperties =
96100
CollectionUtils.filterMapEntries(

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

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ import kotlin.test.assertTrue
2828
import org.awaitility.kotlin.await
2929
import org.slf4j.Logger
3030
import org.slf4j.LoggerFactory
31+
import org.slf4j.MarkerFactory
3132
import org.slf4j.MDC
3233

3334
class SentryAppenderTest {
@@ -251,6 +252,22 @@ class SentryAppenderTest {
251252
}
252253
}
253254

255+
@Test
256+
fun `attaches marker information`() {
257+
fixture = Fixture(minimumEventLevel = Level.WARN)
258+
val sqlMarker = MarkerFactory.getDetachedMarker("SQL")
259+
sqlMarker.add(MarkerFactory.getDetachedMarker("SQL_UPDATE"))
260+
sqlMarker.add(MarkerFactory.getDetachedMarker("SQL_QUERY"))
261+
262+
fixture.logger.warn(sqlMarker, "testing marker tags")
263+
264+
await.untilAsserted {
265+
verify(fixture.transport).send(checkEvent { event ->
266+
assertEquals("SQL [ SQL_UPDATE, SQL_QUERY ]", event.getExtra("marker"))
267+
}, anyOrNull())
268+
}
269+
}
270+
254271
@Test
255272
fun `sets SDK version`() {
256273
fixture = Fixture(minimumEventLevel = Level.INFO)

0 commit comments

Comments
 (0)