package org.rioproject.start; import ch.qos.logback.classic.Logger; import ch.qos.logback.classic.LoggerContext; import ch.qos.logback.classic.encoder.PatternLayoutEncoder; import org.junit.Test; import org.rioproject.config.Constants; import org.rioproject.config.RioProperties; import org.rioproject.config.RioPropertiesTest; import org.slf4j.LoggerFactory; import static org.junit.Assert.assertTrue; /** * @author Dennis Reedy */ public class LogManagementHelperTest { @Test public void checkConfigurationReset() throws Exception { try { MemoryAppender memoryAppender1 = new MemoryAppender(); getLogger(memoryAppender1).info("=============== Nothing ==============="); assertTrue(memoryAppender1.getLogMessages().size()==0); System.setProperty(Constants.ENV_PROPERTY_NAME, System.getProperty("user.dir") + "/src/test/resources/config/rio-with-logback.env"); RioProperties.load(); LogManagementHelper.checkConfigurationReset(); MemoryAppender memoryAppender2 = new MemoryAppender(); getLogger(memoryAppender2).info("=============== Something ==============="); assertTrue(memoryAppender2.getLogMessages().size()==1); } finally { System.clearProperty(Constants.ENV_PROPERTY_NAME); } } private Logger getLogger(MemoryAppender memoryAppender) { LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory(); PatternLayoutEncoder encoder = new PatternLayoutEncoder(); encoder.setPattern("%date %level [%thread] %logger{10} [%file:%line] %msg%n"); encoder.setContext(loggerContext); encoder.start(); memoryAppender.setEncoder(encoder); memoryAppender.setContext(loggerContext); memoryAppender.start(); Logger logger = (Logger) LoggerFactory.getLogger(RioPropertiesTest.class); logger.addAppender(memoryAppender); return logger; } }