diff --git a/logging-modules/logback/src/main/java/com/baeldung/logback/BillingMessageEvaluator.java b/logging-modules/logback/src/main/java/com/baeldung/logback/BillingMessageEvaluator.java new file mode 100644 index 000000000000..f8dc6fb4261d --- /dev/null +++ b/logging-modules/logback/src/main/java/com/baeldung/logback/BillingMessageEvaluator.java @@ -0,0 +1,14 @@ +package com.baeldung.logback; + +import ch.qos.logback.classic.spi.ILoggingEvent; +import ch.qos.logback.core.boolex.EventEvaluatorBase; +import ch.qos.logback.core.boolex.EvaluationException; + +public class BillingMessageEvaluator extends EventEvaluatorBase { + + @Override + public boolean evaluate(ILoggingEvent event) throws NullPointerException, EvaluationException { + String message = event.getMessage(); + return 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 4ff8413ac430..185aa535a799 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 @@ -47,4 +47,16 @@ public void whenSystemPropertyIsPresent_thenReturnFileLogger() throws IOExceptio String logOutput = FileUtils.readFileToString(new File("conditional.log")); assertTrue(logOutput.contains("test prod log")); } + + @Test + public void whenMatchedWithEvaluatorFilter_thenReturnFilteredLogs() throws IOException { + System.setProperty("ENVIRONMENT", "PROD"); + logger = (Logger) LoggerFactory.getLogger(ConditionalLoggingUnitTest.class); + logger.info("billing details: XXXX"); + logger.info("test prod log"); + + String filteredLog = FileUtils.readFileToString(new File("filtered.log")); + assertTrue(filteredLog.contains("test prod log")); + assertFalse(filteredLog.contains("billing details: XXXX")); + } } diff --git a/logging-modules/logback/src/test/resources/logback-conditional.xml b/logging-modules/logback/src/test/resources/logback-conditional.xml index b2574ad3a4f1..d33257d79ac8 100644 --- a/logging-modules/logback/src/test/resources/logback-conditional.xml +++ b/logging-modules/logback/src/test/resources/logback-conditional.xml @@ -38,15 +38,13 @@ filtered.log - - return message.contains("billing"); - + DENY NEUTRAL - - %d %-4relative [%thread] %-5level %logger -%kvp -%msg%n - + + %d [%thread] %-5level %logger{36} -%kvp- %msg%n + @@ -60,4 +58,4 @@ - \ No newline at end of file +