//Dstl (c) Crown Copyright 2017
package uk.gov.dstl.baleen.testing.logging;
import uk.gov.dstl.baleen.core.logging.BaleenLogging;
import uk.gov.dstl.baleen.core.logging.MinMaxFilter;
import uk.gov.dstl.baleen.core.logging.builders.AbstractBaleenLoggerBuilder;
import ch.qos.logback.classic.Level;
import ch.qos.logback.classic.LoggerContext;
import ch.qos.logback.classic.spi.ILoggingEvent;
import ch.qos.logback.core.Appender;
import ch.qos.logback.core.encoder.Encoder;
/**
* Supporting testing through in-memory.
*
*
*
*/
public class InMemoryLoggingBuilder extends AbstractBaleenLoggerBuilder {
private static final String NAME = "memory";
private InMemoryAppender<ILoggingEvent> appender;
public InMemoryLoggingBuilder(String pattern, Level minLevel, Level maxLevel) {
super(NAME, pattern, new MinMaxFilter(minLevel, maxLevel));
}
public InMemoryLoggingBuilder() {
this(BaleenLogging.DEFAULT_PATTERN, Level.INFO, Level.ERROR);
}
/**
* Access the appender as created by this builder.
*
* @return non-null (if the build method has been called)
*/
public InMemoryAppender<ILoggingEvent> getAppender() {
return appender;
}
@Override
protected Appender<ILoggingEvent> createAppender(LoggerContext context, Encoder<ILoggingEvent> encoder) {
appender = new InMemoryAppender<ILoggingEvent>();
return appender;
}
}