package net.sf.openrocket.logging; import static org.junit.Assert.assertEquals; import java.util.List; import org.junit.Ignore; import org.junit.Test; import org.slf4j.LoggerFactory; import ch.qos.logback.classic.Logger; import ch.qos.logback.classic.LoggerContext; public class LogLevelBufferLoggerTest { // NOTE cast private final static Logger logger = (Logger) LoggerFactory.getLogger(LogLevelBufferLoggerTest.class); @Test @Ignore // TODO: test testLogger() is failing, prob due to changes in logging recently public void testLogger() { // assume SLF4J is bound to logback in the current environment LoggerContext context = (LoggerContext) LoggerFactory.getILoggerFactory(); // Call context.reset() to clear any previous configuration, e.g. default // configuration. For multi-step configuration, omit calling context.reset(). context.reset(); LogbackBufferLoggerAdaptor a = new LogbackBufferLoggerAdaptor(4); a.start(); logger.addAppender(a); logger.debug("debug 1"); logger.debug("debug 2"); logger.info(Markers.USER_MARKER, "user 1"); logger.info("info 1"); logger.info("info 2"); logger.warn("warn 1"); logger.debug("debug 3"); logger.debug("debug 4"); logger.info(Markers.USER_MARKER, "user 2"); logger.info("info 3"); logger.error("error 1"); logger.debug("debug 5"); logger.warn("warn 2"); logger.debug("debug 6"); logger.info(Markers.USER_MARKER, "user 3"); logger.info("info 4"); logger.debug("debug 7"); logger.info("info 5"); logger.debug("debug 8"); logger.info("info 6"); LogLevelBufferLogger llbl = LoggingSystemSetup.getBufferLogger(); List<LogLine> list = llbl.getLogs(); assertEquals(16, list.size()); assertEquals("user 1", list.get(0).getMessage()); assertEquals("warn 1", list.get(1).getMessage()); assertEquals("user 2", list.get(2).getMessage()); assertEquals("===== 2 INFO lines removed =====", list.get(3).getMessage()); assertEquals("info 3", list.get(4).getMessage()); assertEquals("error 1", list.get(5).getMessage()); assertEquals("===== 4 DEBUG lines removed =====", list.get(6).getMessage()); assertEquals("debug 5", list.get(7).getMessage()); assertEquals("warn 2", list.get(8).getMessage()); assertEquals("debug 6", list.get(9).getMessage()); assertEquals("user 3", list.get(10).getMessage()); assertEquals("info 4", list.get(11).getMessage()); assertEquals("debug 7", list.get(12).getMessage()); assertEquals("info 5", list.get(13).getMessage()); assertEquals("debug 8", list.get(14).getMessage()); assertEquals("info 6", list.get(15).getMessage()); } }