@Test public void fileAppenderCollision() throws JoranException, InterruptedException { loggerContext.putProperty("DIR_PREFIX", randomOutputDir); String key = "collision"; configure(SIFT_FOLDER_PREFIX + "fileAppender.xml"); SiftingAppender sa = (SiftingAppender) root.getAppender("SIFT"); long timestamp = System.currentTimeMillis(); MDC.put(key, "A-" + diff); logNewEventViaSiftingAppender(sa, timestamp); FileAppender<ILoggingEvent> fileAppenderA = (FileAppender<ILoggingEvent>) sa.getAppenderTracker().find("A-" + diff); assertNotNull(fileAppenderA); assertTrue(fileAppenderA.isStarted()); timestamp += ComponentTracker.DEFAULT_TIMEOUT + 1; MDC.put(key, "B-" + diff); logNewEventViaSiftingAppender(sa, timestamp); assertFalse(fileAppenderA.isStarted()); MDC.put(key, "A-" + diff); timestamp += 1; logNewEventViaSiftingAppender(sa, timestamp); FileAppender<ILoggingEvent> fileAppenderA_2 = (FileAppender<ILoggingEvent>) sa.getAppenderTracker().find("A-" + diff); assertTrue(fileAppenderA_2.isStarted()); }
@Test public void testWholeCycle() throws JoranException { String mdcKey = "cycle"; configure(SIFT_FOLDER_PREFIX + "completeCycle.xml"); MDC.put(mdcKey, "a"); logger.debug("smoke"); long timestamp = System.currentTimeMillis(); SiftingAppender sa = (SiftingAppender) root.getAppender("SIFT"); ListAppender<ILoggingEvent> listAppender = (ListAppender<ILoggingEvent>) sa.getAppenderTracker().find("a"); assertNotNull(listAppender); List<ILoggingEvent> eventList = listAppender.list; assertEquals(1, listAppender.list.size()); assertEquals("smoke", eventList.get(0).getMessage()); MDC.remove(mdcKey); logNewEventViaSiftingAppender(sa, timestamp); assertFalse(listAppender.isStarted()); assertEquals(1, sa.getAppenderTracker().allKeys().size()); assertTrue(sa.getAppenderTracker().allKeys().contains("cycleDefault")); }