1 package org.slf4j.impl; 2 3 import static org.junit.Assert.assertEquals; 4 5 import java.util.Random; 6 7 import org.junit.After; 8 import org.junit.Before; 9 import org.junit.Test; 10 import org.slf4j.Logger; 11 import org.slf4j.LoggerFactory; 12 import org.slf4j.LoggerFactoryFriend; 13 14 import ch.qos.logback.classic.LoggerContext; 15 import ch.qos.logback.classic.util.ContextInitializer; 16 import ch.qos.logback.core.status.Status; 17 import ch.qos.logback.core.status.StatusManager; 18 import ch.qos.logback.core.util.StatusPrinter; 19 20 public class RecursiveInitializationTest { 21 22 int diff = new Random().nextInt(); 23 24 @Before 25 public void setUp() throws Exception { 26 System.setProperty(ContextInitializer.CONFIG_FILE_PROPERTY, 27 "recursiveInit.xml"); 28 StaticLoggerBinderFriend.reset(); 29 LoggerFactoryFriend.reset(); 30 31 } 32 33 @After 34 public void tearDown() throws Exception { 35 System.clearProperty(ContextInitializer.CONFIG_FILE_PROPERTY); 36 } 37 38 @Test 39 public void recursiveLogbackInitialization() { 40 Logger logger = LoggerFactory.getLogger("RecursiveInitializationTest" 41 + diff); 42 logger.info("RecursiveInitializationTest"); 43 44 LoggerContext loggerContext = (LoggerContext) LoggerFactory 45 .getILoggerFactory(); 46 StatusPrinter.printInCaseOfErrorsOrWarnings(loggerContext); 47 StatusManager sm = loggerContext.getStatusManager(); 48 assertEquals("Was expecting no errors", Status.WARN, sm.getLevel()); 49 } 50 51 }