From 50a7c7f5acbc33b75a83c0dfc404295b41ecc90a Mon Sep 17 00:00:00 2001 From: "tomasz.kowalczewski" Date: Wed, 20 Oct 2021 23:42:05 +0200 Subject: [PATCH 1/9] Added clear error message when test resource was missing. --- .../tkowalcz/tjahzi/log4j2/infra/IntegrationTest.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/log4j2-appender/src/test/java/pl/tkowalcz/tjahzi/log4j2/infra/IntegrationTest.java b/log4j2-appender/src/test/java/pl/tkowalcz/tjahzi/log4j2/infra/IntegrationTest.java index 2c7f733..6277826 100644 --- a/log4j2-appender/src/test/java/pl/tkowalcz/tjahzi/log4j2/infra/IntegrationTest.java +++ b/log4j2-appender/src/test/java/pl/tkowalcz/tjahzi/log4j2/infra/IntegrationTest.java @@ -12,6 +12,7 @@ import org.testcontainers.junit.jupiter.Testcontainers; import java.net.URI; import java.net.URISyntaxException; +import java.net.URL; @Testcontainers public class IntegrationTest { @@ -37,9 +38,15 @@ public class IntegrationTest { public static LoggerContext loadConfig(String fileName) { try { - URI uri = IntegrationTest.class + URL resource = IntegrationTest.class .getClassLoader() - .getResource(fileName) + .getResource(fileName); + + if (resource == null) { + Assertions.fail("Resource " + fileName + " not found"); + } + + URI uri = resource .toURI(); return loadConfig(uri); From 9729d2bd2c1195a774b20dee4543c2ea1665a3ea Mon Sep 17 00:00:00 2001 From: "tomasz.kowalczewski" Date: Wed, 20 Oct 2021 23:42:19 +0200 Subject: [PATCH 2/9] Test for MDC logging. --- .../log4j2/MdcLogLabelConfigurationTest.java | 39 +++++++++++++++++++ .../appender-test-with-md-log-label-set.xml | 30 ++++++++++++++ 2 files changed, 69 insertions(+) create mode 100644 log4j2-appender/src/test/java/pl/tkowalcz/tjahzi/log4j2/MdcLogLabelConfigurationTest.java create mode 100644 log4j2-appender/src/test/resources/appender-test-with-md-log-label-set.xml diff --git a/log4j2-appender/src/test/java/pl/tkowalcz/tjahzi/log4j2/MdcLogLabelConfigurationTest.java b/log4j2-appender/src/test/java/pl/tkowalcz/tjahzi/log4j2/MdcLogLabelConfigurationTest.java new file mode 100644 index 0000000..1e53b73 --- /dev/null +++ b/log4j2-appender/src/test/java/pl/tkowalcz/tjahzi/log4j2/MdcLogLabelConfigurationTest.java @@ -0,0 +1,39 @@ +package pl.tkowalcz.tjahzi.log4j2; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.apache.logging.log4j.ThreadContext; +import org.junit.jupiter.api.Test; +import pl.tkowalcz.tjahzi.log4j2.infra.IntegrationTest; + +import java.util.UUID; + +import static org.hamcrest.CoreMatchers.equalTo; +import static org.hamcrest.Matchers.greaterThanOrEqualTo; +import static pl.tkowalcz.tjahzi.log4j2.infra.LokiAssert.assertThat; + +class MdcLogLabelConfigurationTest extends IntegrationTest { + + @Test + void shouldSendMdcLogLabelAsConfigured() { + // Given + loadConfig("appender-test-with-md-log-label-set.xml"); + Logger logger = LogManager.getLogger(MdcLogLabelConfigurationTest.class); + + // When + String tid = UUID.randomUUID().toString(); + ThreadContext.put("tid", tid); + + logger.info("Test"); + + // Then + assertThat(loki) + .returns(response -> response + .body("data.result.size()", greaterThanOrEqualTo(1)) + .body("data.result[0].stream.server", equalTo("127.0.0.1")) + .body("data.result[0].stream.tid1", equalTo(tid)) + .body("data.result[0].stream.tid2", equalTo(tid)) + .body("data.result[0].stream.tid3", equalTo(tid)) + ); + } +} diff --git a/log4j2-appender/src/test/resources/appender-test-with-md-log-label-set.xml b/log4j2-appender/src/test/resources/appender-test-with-md-log-label-set.xml new file mode 100644 index 0000000..d741fd8 --- /dev/null +++ b/log4j2-appender/src/test/resources/appender-test-with-md-log-label-set.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + ${sys:loki.host} + ${sys:loki.port} + + + + %X{tid} [%t] %d{MM-dd HH:mm:ss.SSS} %5p %c{1} - %m%n%exception{full} + + +
+