if (listeners.size() > 0) { for (final StatusListener listener : listeners) { if (data.getLevel().isMoreSpecificThan(listener.getStatusLevel())) { listener.log(data);
@Test public void testEmptyAttribute() throws Exception { final Logger logger = LogManager.getLogger(); logger.info("Test"); final StatusData data = StatusLogger.getLogger().getStatusData().get(0); //System.out.println(data.getFormattedStatus()); assertEquals(Level.ERROR, data.getLevel()); assertTrue(data.getMessage().getFormattedMessage().contains("multiple root loggers")); } }
@Test public void narrow() throws Exception { final Logger logger = LogManager.getLogger(OutputStreamManagerTest.class); logger.info("test"); final List<StatusData> statusData = StatusLogger.getLogger().getStatusData(); StatusData data = statusData.get(0); if (data.getMessage().getFormattedMessage().contains("WindowsAnsiOutputStream")) { data = statusData.get(1); } assertEquals(Level.ERROR, data.getLevel()); assertEquals("Could not create plugin of type class org.apache.logging.log4j.core.appender.RollingRandomAccessFileAppender for element RollingRandomAccessFile", data.getMessage().getFormattedMessage()); assertEquals("org.apache.logging.log4j.core.config.ConfigurationException: Configuration has multiple incompatible Appenders pointing to the same resource 'target/multiIncompatibleAppender.log'", data.getThrowable().toString()); }
"Logging in toString() #128", actual.pop()); StatusData mostRecentStatusData = statusDataList.get(statusDataList.size() - 1); assertEquals("Expected warn level status message", Level.WARN, mostRecentStatusData.getLevel()); assertThat(mostRecentStatusData.getFormattedStatus(), containsString( "Log4j2 logged an event out of order to prevent deadlock caused by domain " +
@Test public void testMessageThrowsAndNullFormat() { final ThrowableExpectingLogger logger = new ThrowableExpectingLogger(false); logger.error(new TestMessage(new TestMessage.FormattedMessageSupplier() { @Override public String getFormattedMessage() { throw new IllegalStateException("Oops!"); } }, null /* format */)); List<StatusData> statusDatalist = StatusLogger.getLogger().getStatusData(); StatusData mostRecent = statusDatalist.get(statusDatalist.size() - 1); assertEquals(Level.WARN, mostRecent.getLevel()); assertThat(mostRecent.getFormattedStatus(), containsString( "org.apache.logging.log4j.spi.AbstractLogger caught " + "java.lang.IllegalStateException logging TestMessage: ")); }
@Test public void testMessageThrows() { final ThrowableExpectingLogger logger = new ThrowableExpectingLogger(false); logger.error(new TestMessage(new TestMessage.FormattedMessageSupplier() { @Override public String getFormattedMessage() { throw new IllegalStateException("Oops!"); } }, "Message Format")); List<StatusData> statusDatalist = StatusLogger.getLogger().getStatusData(); StatusData mostRecent = statusDatalist.get(statusDatalist.size() - 1); assertEquals(Level.WARN, mostRecent.getLevel()); assertThat(mostRecent.getFormattedStatus(), containsString( "org.apache.logging.log4j.spi.AbstractLogger caught " + "java.lang.IllegalStateException logging TestMessage: Message Format")); }
assertEquals(Level.ERROR, error.getLevel()); assertEquals("Unable to send HTTP in appender [Http]", error.getMessage().toString());
import org.apache.logging.log4j.status.StatusData; import org.apache.logging.log4j.status.StatusLogger; ... StatusLogger statusLogger = StatusLogger.getLogger(); if (statusLogger.getStatusData().size() > 0) { System.out.printf( "Logged %d messages\n", statusLogger.getStatusData().size() ); // Investigate List<StatusData> if you want for(StatusData data : statusLogger.getStatusData()) { System.out.printf( " Level %s message: %s\n", data.getLevel(), data.getMessage().getFormattedMessage() ); } System.err.println("exiting due to unexpected console status logs"); System.exit(1); }
if (listeners.size() > 0) { for (final StatusListener listener : listeners) { if (data.getLevel().isMoreSpecificThan(listener.getStatusLevel())) { listener.log(data);