From f99c262d704c79a2516fd55e7000c9e711bdfe95 Mon Sep 17 00:00:00 2001 From: "tomasz.kowalczewski" Date: Sat, 4 Sep 2021 22:18:03 +0200 Subject: [PATCH] Added test for loading Tjahzi configuration from property file based config file. --- .../tjahzi/log4j2/LokiPropertiesFileTest.java | 42 +++++++++++++++++++ ...ppender-test-with-log-label-set.properties | 25 +++++++++++ 2 files changed, 67 insertions(+) create mode 100644 log4j2-appender/src/test/java/pl/tkowalcz/tjahzi/log4j2/LokiPropertiesFileTest.java create mode 100644 log4j2-appender/src/test/resources/appender-test-with-log-label-set.properties diff --git a/log4j2-appender/src/test/java/pl/tkowalcz/tjahzi/log4j2/LokiPropertiesFileTest.java b/log4j2-appender/src/test/java/pl/tkowalcz/tjahzi/log4j2/LokiPropertiesFileTest.java new file mode 100644 index 0000000..9c05dd1 --- /dev/null +++ b/log4j2-appender/src/test/java/pl/tkowalcz/tjahzi/log4j2/LokiPropertiesFileTest.java @@ -0,0 +1,42 @@ +package pl.tkowalcz.tjahzi.log4j2; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.junit.jupiter.api.Test; +import pl.tkowalcz.tjahzi.log4j2.infra.IntegrationTest; + +import static org.hamcrest.CoreMatchers.*; +import static pl.tkowalcz.tjahzi.log4j2.infra.LokiAssert.assertThat; + +class LokiPropertiesFileTest extends IntegrationTest { + + @Test + void shouldSendData() { + // Given + loadConfig("appender-test-with-log-label-set.properties"); + Logger logger = LogManager.getLogger(LokiPropertiesFileTest.class); + + String expectedLogLine = "Hello World"; + + // When + logger.info(expectedLogLine); + + // Then + assertThat(loki) + .returns(response -> response + .body("data.result.size()", equalTo(1)) + .body("data.result[0].stream.server", equalTo("127.0.0.1")) + .body("data.result[0].stream.source", equalTo("log4j")) + .body( + "data.result.values", + hasItems( + hasItems( + hasItems( + containsString("INFO LokiPropertiesFileTest - " + expectedLogLine) + ) + ) + ) + ) + ); + } +} diff --git a/log4j2-appender/src/test/resources/appender-test-with-log-label-set.properties b/log4j2-appender/src/test/resources/appender-test-with-log-label-set.properties new file mode 100644 index 0000000..289a044 --- /dev/null +++ b/log4j2-appender/src/test/resources/appender-test-with-log-label-set.properties @@ -0,0 +1,25 @@ +packages="pl.tkowalcz.tjahzi.log4j2" + +# Allows this configuration to be modified at runtime. The file will be checked every 30 seconds. +monitorInterval=30 + +rootLogger.level = INFO +rootLogger.appenderRefs = loki +rootLogger.appenderRef.loki.ref = loki-appender + +appender.loki.name = loki-appender +appender.loki.type = Loki +appender.loki.host = ${sys:loki.host} +appender.loki.port = ${sys:loki.port} +appender.loki.logLevelLabel = log_level + +appender.loki.layout.type = PatternLayout +appender.loki.layout.pattern = %X{tid} [%t] %d{MM-dd HH:mm:ss.SSS} %5p %c{1} - %m%n%exception{full} + +appender.loki.labels[0].type = label +appender.loki.labels[0].name = server +appender.loki.labels[0].value = 127.0.0.1 + +appender.loki.labels[1].type = label +appender.loki.labels[1].name = source +appender.loki.labels[1].value = log4j