类org.apache.logging.log4j.status.StatusData源码实例Demo

下面列出了怎么用org.apache.logging.log4j.status.StatusData的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: logging-log4j2   文件: AbstractLoggerTest.java
@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"));
}
 
源代码2 项目: logging-log4j2   文件: AbstractLoggerTest.java
@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 testDoesNotLog_NoParameterThatMatchesElement_message() {
    final StoringStatusListener listener = new StoringStatusListener();
    // @formatter:off
    final PluginBuilder builder = new PluginBuilder(plugin).
            setConfiguration(new NullConfiguration()).
            setConfigurationNode(node);
    // @formatter:on
    StatusLogger.getLogger().registerListener(listener);

    final FailoverAppender failoverAppender = (FailoverAppender) builder.build();

    assertThat(listener.logs, emptyCollectionOf(StatusData.class));
    assertNotNull(failoverAppender);
    assertEquals("Failover", failoverAppender.getName());
}
 
源代码4 项目: logging-log4j2   文件: AbstractActionTest.java
@Test
public void testExceptionsAreLoggedToStatusLogger() {
    StatusLogger statusLogger = StatusLogger.getLogger();
    statusLogger.clear();
    new TestAction().run();
    List<StatusData> statusDataList = statusLogger.getStatusData();
    assertEquals(1, statusDataList.size());
    StatusData statusData = statusDataList.get(0);
    assertEquals(Level.WARN, statusData.getLevel());
    String formattedMessage = statusData.getFormattedStatus();
    assertTrue(formattedMessage, formattedMessage.contains("Exception reported by action 'class org.apache."
            + "logging.log4j.core.appender.rolling.action.AbstractActionTest$TestAction' java.io.IOException: "
            + "failed" + System.lineSeparator()
            + "\tat org.apache.logging.log4j.core.appender.rolling.action.AbstractActionTest"
            + "$TestAction.execute(AbstractActionTest.java:"));
}
 
源代码5 项目: logging-log4j2   文件: AbstractActionTest.java
@Test
public void testRuntimeExceptionsAreLoggedToStatusLogger() {
    StatusLogger statusLogger = StatusLogger.getLogger();
    statusLogger.clear();
    new AbstractAction() {
        @Override
        public boolean execute() {
            throw new IllegalStateException();
        }
    }.run();
    List<StatusData> statusDataList = statusLogger.getStatusData();
    assertEquals(1, statusDataList.size());
    StatusData statusData = statusDataList.get(0);
    assertEquals(Level.WARN, statusData.getLevel());
    String formattedMessage = statusData.getFormattedStatus();
    assertTrue(formattedMessage.contains("Exception reported by action"));
}
 
源代码6 项目: logging-log4j2   文件: AbstractActionTest.java
@Test
public void testErrorsAreLoggedToStatusLogger() {
    StatusLogger statusLogger = StatusLogger.getLogger();
    statusLogger.clear();
    new AbstractAction() {
        @Override
        public boolean execute() {
            throw new AssertionError();
        }
    }.run();
    List<StatusData> statusDataList = statusLogger.getStatusData();
    assertEquals(1, statusDataList.size());
    StatusData statusData = statusDataList.get(0);
    assertEquals(Level.WARN, statusData.getLevel());
    String formattedMessage = statusData.getFormattedStatus();
    assertTrue(formattedMessage.contains("Exception reported by action"));
}
 
源代码7 项目: logging-log4j2   文件: HttpAppenderTest.java
@Test
public void testAppendErrorIgnore() throws Exception {
    wireMockRule.stubFor(post(urlEqualTo("/test/log4j/"))
        .willReturn(FAILURE_RESPONSE));

    StatusLogger.getLogger().registerListener(new StatusListener() {
        @Override
        public void log(final StatusData data) {
            error = data;
        }

        @Override
        public Level getStatusLevel() {
            return Level.ERROR;
        }

        @Override
        public void close() throws IOException { }
    });

    error = null;

    final Appender appender = HttpAppender.newBuilder()
        .setName("Http")
        .setLayout(JsonLayout.createDefaultLayout())
        .setConfiguration(ctx.getConfiguration())
        .setUrl(new URL("http://localhost:" + wireMockRule.port() + "/test/log4j/"))
        .build();
    appender.append(createLogEvent());

    wireMockRule.verify(postRequestedFor(urlEqualTo("/test/log4j/"))
        .withHeader("Host", containing("localhost"))
        .withHeader("Content-Type", containing("application/json"))
        .withRequestBody(containing("\"message\" : \"" + LOG_MESSAGE + "\"")));

    assertNotNull(error);
    assertEquals(Level.ERROR, error.getLevel());
    assertEquals("Unable to send HTTP in appender [Http]", error.getMessage().toString());
}
 
源代码8 项目: logging-log4j2   文件: StatusLoggerAdmin.java
@Override
public String[] getStatusDataHistory() {
    final List<StatusData> data = getStatusData();
    final String[] result = new String[data.size()];
    for (int i = 0; i < result.length; i++) {
        result[i] = data.get(i).getFormattedStatus();
    }
    return result;
}
 
源代码9 项目: logging-log4j2   文件: StatusLoggerAdmin.java
@Override
public void log(final StatusData data) {
    final Notification notifMsg = new Notification(NOTIF_TYPE_MESSAGE, getObjectName(), nextSeqNo(), nowMillis(),
            data.getFormattedStatus());
    sendNotification(notifMsg);

    final Notification notifData = new Notification(NOTIF_TYPE_DATA, getObjectName(), nextSeqNo(), nowMillis());
    notifData.setUserData(data);
    sendNotification(notifData);
}
 
源代码10 项目: logging-log4j2   文件: LoggersPluginTest.java
@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"));
}
 
private String logFileNameError(String expected, String actual) {
    final List<StatusData> statusData = StatusLogger.getLogger().getStatusData();
    final StringBuilder sb = new StringBuilder();
    for (StatusData statusItem : statusData) {
        sb.append(statusItem.getFormattedStatus());
        sb.append("\n");
    }
    sb.append("Incorrect file name. Expected: ").append(expected).append(" Actual: ").append(actual);
    return sb.toString();
}
 
源代码12 项目: logging-log4j2   文件: OutputStreamManagerTest.java
@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());
}
 
static void asyncLoggerConfigRecursiveTest(final Logger logger,
                                           final Unlocker unlocker,
                                           final BlockingAppender blockingAppender,
                                           final QueueFullAbstractTest factory) {
    for (int i = 0; i < 1; i++) {
        TRACE("Test logging message " + i  + ". Remaining capacity=" + asyncRemainingCapacity(logger));
        TRACE("Test decrementing unlocker countdown latch. Count=" + unlocker.countDownLatch.getCount());
        unlocker.countDownLatch.countDown();
        final DomainObject obj = factory.new DomainObject(129);
        logger.info("logging naughty object #{} {}", i, obj);
    }
    TRACE("Before stop() blockingAppender.logEvents.count=" + blockingAppender.logEvents.size());
    //CoreLoggerContexts.stopLoggerContext(false); // stop async thread
    while (blockingAppender.logEvents.size() < 130) { Thread.yield(); }
    TRACE("After  stop() blockingAppender.logEvents.count=" + blockingAppender.logEvents.size());

    final Stack<String> actual = transform(blockingAppender.logEvents);
    assertEquals("Logging in toString() #0", actual.pop());
    List<StatusData> statusDataList = StatusLogger.getLogger().getStatusData();
    assertEquals("Jumped the queue: queue full",
            "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 " +
                    "objects logging from their toString method when the async queue is full"));

    for (int i = 1; i < 128; i++) {
        assertEquals("First batch", "Logging in toString() #" + i, actual.pop());
    }
    assertEquals("logging naughty object #0 Who's bad?!", actual.pop());
    assertTrue(actual.isEmpty());
}
 
源代码14 项目: crate   文件: LogConfigurator.java
@Override
public void log(StatusData data) {
    ERROR.set(true);
    super.log(data);
}
 
源代码15 项目: crate   文件: ESTestCase.java
@Override
public void log(StatusData data) {
    synchronized (statusData) {
        statusData.add(data);
    }
}
 
源代码16 项目: logging-log4j2   文件: StatusLoggerAdmin.java
@Override
public List<StatusData> getStatusData() {
    return StatusLogger.getLogger().getStatusData();
}
 
@Override
public void log(StatusData data) {
    logs.add(data);
}
 
源代码18 项目: logging-log4j2   文件: StatusLoggerAdminMBean.java
/**
 * Returns a list with the most recent {@code StatusData} objects in the
 * status history. The list has up to 200 entries by default but the length
 * can be configured with system property {@code "log4j2.status.entries"}.
 * <p>
 * Note that the returned objects may contain {@code Throwable}s from
 * external libraries.
 * </p>
 * <p>
 * JMX clients calling this method must be prepared to deal with the errors
 * that occur if they do not have the class definition for such
 * {@code Throwable}s in their classpath.
 * </p>
 *
 * @return the most recent messages logged by the {@code StatusLogger}.
 */
List<StatusData> getStatusData();
 
@Override
public void log(StatusData data) {

}
 
 类所在包
 类方法
 同包方法