@Override public void run() { contextConfigurer.update(context); ArgumentCaptor<ConsoleAppender> appenderCaptor = ArgumentCaptor.forClass(ConsoleAppender.class); verify(context.getConfiguration()).addAppender(appenderCaptor.capture()); Appender forcedConsoleAppender = appenderCaptor.getValue(); assertThat(forcedConsoleAppender, notNullValue()); assertThat(forcedConsoleAppender.getName(), equalTo(FORCED_CONSOLE_APPENDER_NAME)); assertThat(forcedConsoleAppender.isStarted(), is(true)); LoggerConfig rootLogger = ((AbstractConfiguration) context.getConfiguration()).getRootLogger(); verify(rootLogger).addAppender(forcedConsoleAppender, Level.ALL, null); } });
@Test public void perAppDefaultAppender() throws Exception { when(context.isArtifactClassloader()).thenReturn(true); when(context.getArtifactDescriptor().getDeploymentProperties()).thenReturn(empty()); contextConfigurer.update(context); ArgumentCaptor<RollingFileAppender> appenderCaptor = ArgumentCaptor.forClass(RollingFileAppender.class); verify(context.getConfiguration()).addAppender(appenderCaptor.capture()); Appender perAppAppender = appenderCaptor.getValue(); assertThat(perAppAppender, notNullValue()); assertThat(perAppAppender.getName(), equalTo(PER_APP_FILE_APPENDER_NAME)); assertThat(perAppAppender.isStarted(), is(true)); String filePattern = ClassUtils.getFieldValue(perAppAppender, FILE_PATTERN_PROPERTY, true); String filePatternTemplate = filePattern.substring(filePattern.lastIndexOf('/') + 1); String filePatternTemplateDateSuffix = filePatternTemplate.substring(filePatternTemplate.lastIndexOf('.') + 1); assertThat(filePatternTemplateDateSuffix, equalTo(FILE_PATTERN_TEMPLATE_DATE_SECTION)); LoggerConfig rootLogger = context.getConfiguration().getRootLogger(); verify(rootLogger).addAppender(perAppAppender, Level.ALL, null); }
private void ensureAppenderStarted() { if (!appender.isStarted()) { handleError("Attempted to append to non-started appender "); } }
@Before public void before() { appender = Mockito.mock(Appender.class); when(appender.getName()).thenReturn("TestAppender"); when(appender.isStarted()).thenReturn(true); getLoggerConfig().addAppender(appender, Level.ALL, null); }
@Test(expected = ConfigurationException.class) public void throwsExceptionOnUnresolvedAppender() { // given Appender appender = mock(Appender.class); when(appender.isStarted()).thenReturn(true); Configuration configuration = mock(Configuration.class); String testAppenderRef = "testAppenderRef"; when(configuration.getAppender(testAppenderRef)).thenReturn(null); FailoverPolicy<String> failoverPolicy = createTestFailoverPolicy(testAppenderRef, configuration); String failedMessage = "test failed message"; // when failoverPolicy.deliver(failedMessage); } public static FailoverPolicy<String> createTestFailoverPolicy(String testAppenderRef, Configuration configuration) {
@Test public void deliversToAppenderRef() { // given Appender appender = mock(Appender.class); when(appender.isStarted()).thenReturn(true); Configuration configuration = mock(Configuration.class); String testAppenderRef = "testAppenderRef"; when(configuration.getAppender(testAppenderRef)).thenReturn(appender); FailoverPolicy<String> failoverPolicy = createTestFailoverPolicy(testAppenderRef, configuration); String failedMessage = "test failed message"; // when failoverPolicy.deliver(failedMessage); // then verify(appender, times(1)).append(any(LogEvent.class)); }
@Test public void resolvesAppenderRefOnlyOnce() { // given Appender appender = mock(Appender.class); when(appender.isStarted()).thenReturn(true); Configuration configuration = mock(Configuration.class); String testAppenderRef = "testAppenderRef"; when(configuration.getAppender(testAppenderRef)).thenReturn(appender); FailoverPolicy<String> failoverPolicy = createTestFailoverPolicy(testAppenderRef, configuration); String failedMessage = "test failed message"; // when failoverPolicy.deliver(failedMessage); failoverPolicy.deliver(failedMessage); // then verify(configuration, times(1)).getAppender(anyString()); verify(appender, times(2)).append(any(LogEvent.class)); }
int appenderCount = 0; for (int i = array.length - 1; i >= 0; --i) { if (array[i].isStarted()) { // then stop remaining Appenders if (array[i] instanceof LifeCycle2) { ((LifeCycle2) array[i]).stop(timeout, timeUnit);