这是indexloc提供的服务,不要输入任何密码
Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 14 additions & 2 deletions logging-modules/logback/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,12 @@
<artifactId>logback-classic</artifactId>
<version>${logback.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/ch.qos.logback/logback-core -->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>${logback.version}</version>
</dependency>
<dependency>
<groupId>ch.qos.logback.contrib</groupId>
<artifactId>logback-json-classic</artifactId>
Expand Down Expand Up @@ -86,6 +92,12 @@
<artifactId>logstash-logback-encoder</artifactId>
<version>${logstash.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.tukaani/xz -->
<dependency>
<groupId>org.tukaani</groupId>
<artifactId>xz</artifactId>
<version>1.10</version>
</dependency>
</dependencies>

<build>
Expand All @@ -109,10 +121,10 @@
<docx4j.version>3.3.5</docx4j.version>
<angus.mail.version>2.0.1</angus.mail.version>
<angus.activation.version>2.0.0</angus.activation.version>
<logback.version>1.5.6</logback.version>
<logback.version>1.5.18</logback.version>
<slf4j.version>2.1.0-alpha1</slf4j.version>
<janino.version>3.1.12</janino.version>
<logstash.version>8.0</logstash.version>
</properties>

</project>
</project>
Original file line number Diff line number Diff line change
@@ -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<ILoggingEvent> {

@Override
public boolean evaluate(ILoggingEvent event) {
String message = event.getMessage();
return message != null && message.contains("billing");
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@

import ch.qos.logback.classic.Logger;


public class ConditionalLoggingUnitTest {

private static Logger logger;
Expand Down Expand Up @@ -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"));
}

}
Original file line number Diff line number Diff line change
@@ -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));
}
}
17 changes: 17 additions & 0 deletions logging-modules/logback/src/test/resources/logback-evaluator.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%msg%n</pattern>
</encoder>
</appender>

<filter class="ch.qos.logback.core.filter.EvaluatorFilter">
<evaluator class="com.baeldung.logback.MyCustomEvaluator"/>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>

<root level="INFO">
<appender-ref ref="STDOUT"/>
</root>
</configuration>