Skip to content

Commit 19cf058

Browse files
committed
AB#60301 add structured logging to commons
1 parent c9be7b3 commit 19cf058

2 files changed

Lines changed: 60 additions & 0 deletions

File tree

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package fi.hsl.common.logging;
2+
3+
import org.slf4j.MDC;
4+
5+
import java.util.Map;
6+
7+
public class LogUtils {
8+
9+
private LogUtils() {
10+
11+
}
12+
13+
public static void withFields(Map<String, String> fields, Runnable loggingAction) {
14+
fields.forEach(MDC::put);
15+
try {
16+
loggingAction.run();
17+
} finally {
18+
fields.keySet().forEach(MDC::remove);
19+
}
20+
}
21+
}
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
package fi.hsl.common.logging;
2+
3+
import ch.qos.logback.classic.Logger;
4+
import ch.qos.logback.classic.spi.ILoggingEvent;
5+
import ch.qos.logback.core.read.ListAppender;
6+
import org.junit.Test;
7+
import org.slf4j.LoggerFactory;
8+
9+
import java.util.List;
10+
import java.util.Map;
11+
12+
import static org.junit.Assert.assertEquals;
13+
14+
public class StructuredLoggingTest {
15+
16+
private static final Logger log = (Logger) LoggerFactory.getLogger(StructuredLoggingTest.class);
17+
18+
@Test
19+
public void testStructuredLoggingWithMDC() {
20+
ListAppender<ILoggingEvent> listAppender = new ListAppender<>();
21+
listAppender.start();
22+
log.addAppender(listAppender);
23+
24+
Map<String, String> fields = Map.of("inFlight", "42", "userId", "KaladinStormblessed");
25+
LogUtils.withFields(fields, () -> log.info("Processing messages"));
26+
27+
List<ILoggingEvent> logsList = listAppender.list;
28+
assertEquals(1, logsList.size());
29+
30+
ILoggingEvent logEvent = logsList.get(0);
31+
32+
assertEquals("Processing messages", logEvent.getFormattedMessage());
33+
34+
assertEquals("42", logEvent.getMDCPropertyMap().get("inFlight"));
35+
assertEquals("KaladinStormblessed", logEvent.getMDCPropertyMap().get("userId"));
36+
37+
listAppender.stop();
38+
}
39+
}

0 commit comments

Comments
 (0)