[BAEL-1300] Custom Logback Appender (#3193)
* BAEL-1300 Custom logback appender * BAEL-1300 fix to logback module * relativePath
This commit is contained in:
+33
@@ -0,0 +1,33 @@
|
||||
package com.baeldung.logback;
|
||||
|
||||
import ch.qos.logback.classic.Logger;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
|
||||
public class MapAppenderIntegrationTest {
|
||||
|
||||
private Logger rootLogger;
|
||||
|
||||
@Before
|
||||
public void setUp() throws Exception {
|
||||
rootLogger = (Logger) LoggerFactory.getLogger("ROOT");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void whenLoggerEmitsLoggingEvent_thenAppenderReceivesEvent() throws Exception {
|
||||
rootLogger.info("Test from {}", this.getClass().getSimpleName());
|
||||
MapAppender appender = (MapAppender) rootLogger.getAppender("map");
|
||||
assertEquals(appender.getEventMap().size(), 1);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void givenNoPrefixSet_whenLoggerEmitsEvent_thenAppenderReceivesNoEvent() throws Exception {
|
||||
rootLogger.info("Test from {}", this.getClass().getSimpleName());
|
||||
MapAppender appender = (MapAppender) rootLogger.getAppender("badMap");
|
||||
assertEquals(appender.getEventMap().size(), 0);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
package com.baeldung.logback;
|
||||
|
||||
import ch.qos.logback.classic.Level;
|
||||
import ch.qos.logback.classic.LoggerContext;
|
||||
import ch.qos.logback.classic.spi.LoggingEvent;
|
||||
import ch.qos.logback.core.BasicStatusManager;
|
||||
import org.junit.After;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
public class MapAppenderTest {
|
||||
|
||||
private LoggerContext ctx;
|
||||
|
||||
private MapAppender mapAppender = new MapAppender();
|
||||
|
||||
private LoggingEvent event;
|
||||
|
||||
@Before
|
||||
public void setUp() throws Exception {
|
||||
ctx = new LoggerContext();
|
||||
ctx.setName("test context");
|
||||
ctx.setStatusManager(new BasicStatusManager());
|
||||
mapAppender.setContext(ctx);
|
||||
mapAppender.setPrefix("prefix");
|
||||
event = new LoggingEvent("fqcn", ctx.getLogger("logger"), Level.INFO, "Test message for logback appender", null, new Object[0]);
|
||||
ctx.start();
|
||||
}
|
||||
|
||||
@After
|
||||
public void tearDown() throws Exception {
|
||||
ctx.stop();
|
||||
mapAppender.stop();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void whenPrefixIsNull_thenMapAppenderDoesNotLog() throws Exception {
|
||||
mapAppender.setPrefix(null);
|
||||
mapAppender.append(event);
|
||||
assertTrue(mapAppender.getEventMap().isEmpty());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void whenPrefixIsEmpty_thenMapAppenderDoesNotLog() throws Exception {
|
||||
mapAppender.setPrefix("");
|
||||
mapAppender.append(event);
|
||||
assertTrue(mapAppender.getEventMap().isEmpty());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void whenLogMessageIsEmitted_thenMapAppenderReceivesMessage() throws Exception {
|
||||
mapAppender.append(event);
|
||||
assertEquals(mapAppender.getEventMap().size(), 1);
|
||||
mapAppender.getEventMap().forEach((k, v) -> assertTrue(k.startsWith("prefix")));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
<configuration debug="true">
|
||||
|
||||
<appender name="map" class="com.baeldung.logback.MapAppender">
|
||||
<prefix>test</prefix>
|
||||
</appender>
|
||||
|
||||
<appender name="badMap" class="com.baeldung.logback.MapAppender"/>
|
||||
|
||||
<root level="debug">
|
||||
<appender-ref ref="map"/>
|
||||
<appender-ref ref="badMap"/>
|
||||
</root>
|
||||
|
||||
</configuration>
|
||||
Reference in New Issue
Block a user