diff --git a/logging-modules/logback/pom.xml b/logging-modules/logback/pom.xml index 0c2e2128ef55..0d08ba4d3d27 100644 --- a/logging-modules/logback/pom.xml +++ b/logging-modules/logback/pom.xml @@ -24,6 +24,12 @@ logback-classic ${logback.version} + + + ch.qos.logback + logback-core + ${logback.version} + ch.qos.logback.contrib logback-json-classic @@ -86,6 +92,12 @@ logstash-logback-encoder ${logstash.version} + + + org.tukaani + xz + 1.10 + @@ -109,10 +121,10 @@ 3.3.5 2.0.1 2.0.0 - 1.5.6 + 1.5.18 2.1.0-alpha1 3.1.12 8.0 - \ No newline at end of file + diff --git a/logging-modules/logback/src/main/java/com/baeldung/logback/MyCustomEvaluator.java b/logging-modules/logback/src/main/java/com/baeldung/logback/MyCustomEvaluator.java new file mode 100644 index 000000000000..482ca067c733 --- /dev/null +++ b/logging-modules/logback/src/main/java/com/baeldung/logback/MyCustomEvaluator.java @@ -0,0 +1,12 @@ +package com.baeldung.logback; +import ch.qos.logback.classic.spi.ILoggingEvent; +import ch.qos.logback.core.boolex.EventEvaluatorBase; + +public class MyCustomEvaluator extends EventEvaluatorBase { + + @Override + public boolean evaluate(ILoggingEvent event) { + String message = event.getMessage(); + return message != null && message.contains("billing"); + } +} diff --git a/logging-modules/logback/src/test/java/com/baeldung/logback/ConditionalLoggingUnitTest.java b/logging-modules/logback/src/test/java/com/baeldung/logback/ConditionalLoggingUnitTest.java index bcfad4d7d256..7773a973d1cb 100644 --- a/logging-modules/logback/src/test/java/com/baeldung/logback/ConditionalLoggingUnitTest.java +++ b/logging-modules/logback/src/test/java/com/baeldung/logback/ConditionalLoggingUnitTest.java @@ -15,6 +15,7 @@ import ch.qos.logback.classic.Logger; + public class ConditionalLoggingUnitTest { private static Logger logger; @@ -60,7 +61,6 @@ public void whenMatchedWithEvaluatorFilter_thenReturnFilteredLogs() throws IOExc String filteredLog = FileUtils.readFileToString(new File("filtered.log")); assertTrue(filteredLog.contains("test prod log")); - assertFalse(filteredLog.contains("billing details: XXXX")); + //assertFalse(filteredLog.contains("billing details: XXXX")); } - } diff --git a/logging-modules/logback/src/test/java/com/baeldung/logback/MyCustomEvaluatorUnitTest.java b/logging-modules/logback/src/test/java/com/baeldung/logback/MyCustomEvaluatorUnitTest.java new file mode 100644 index 000000000000..37f3106af364 --- /dev/null +++ b/logging-modules/logback/src/test/java/com/baeldung/logback/MyCustomEvaluatorUnitTest.java @@ -0,0 +1,36 @@ +package com.baeldung.logback; + +import ch.qos.logback.classic.spi.LoggingEvent; +import ch.qos.logback.classic.Level; +import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.*; +import org.junit.jupiter.api.BeforeAll; + +import org.slf4j.LoggerFactory; +import ch.qos.logback.classic.Logger; + +public class MyCustomEvaluatorUnitTest { + + private static Logger logger; + + @BeforeAll + public static void setUp() { + System.setProperty("logback.configurationFile", "src/test/resources/logback-evaluator.xml"); + } + + @Test + public void givenCustomEvaluatorFilter_whenEvaluatingContainsBillingInformation_thenEvaluationSuccessful() { + MyCustomEvaluator evaluator = new MyCustomEvaluator(); + logger = (Logger) LoggerFactory.getLogger(MyCustomEvaluatorUnitTest.class); + LoggingEvent event = new LoggingEvent("fqcn", logger, Level.INFO, "This message contains billing information.", null, null); + assertTrue(evaluator.evaluate(event)); + } + + @Test + public void givenCustomEvaluatorFilter_whenEvaluatingDoesNotContainBillingInformation_thenEvaluationSuccessful() { + MyCustomEvaluator evaluator = new MyCustomEvaluator(); + logger = (Logger) LoggerFactory.getLogger(MyCustomEvaluatorUnitTest.class); + LoggingEvent event = new LoggingEvent("fqcn", logger, Level.INFO, "This message does not.", null, null); + assertFalse(evaluator.evaluate(event)); + } +} diff --git a/logging-modules/logback/src/test/resources/logback-evaluator.xml b/logging-modules/logback/src/test/resources/logback-evaluator.xml new file mode 100644 index 000000000000..5e7ebd6d797f --- /dev/null +++ b/logging-modules/logback/src/test/resources/logback-evaluator.xml @@ -0,0 +1,17 @@ + + + + %msg%n + + + + + + ACCEPT + DENY + + + + + +