@Test
  public void testException() throws Exception {

    Logger logger = Logger.getLogger(getClass());

    logger.info(LOG_MESSAGE, new Exception("this is an exception"));
    assertEquals(1, GelfTestSender.getMessages().size());

    GelfMessage gelfMessage = GelfTestSender.getMessages().get(0);

    assertEquals(LOG_MESSAGE, gelfMessage.getFullMessage());
    assertEquals(
        AbstractGelfLogAppenderTest.class.getName(),
        gelfMessage.getField(LogMessageField.NamedLogField.SourceClassName.getFieldName()));
    assertEquals(
        "testException",
        gelfMessage.getField(LogMessageField.NamedLogField.SourceMethodName.getFieldName()));

    assertThat(
        gelfMessage.getField(MdcGelfMessageAssembler.FIELD_STACK_TRACE),
        containsString("this is an exception"));
    assertThat(
        gelfMessage.getField(MdcGelfMessageAssembler.FIELD_STACK_TRACE), containsString("skipped"));
    assertThat(
        gelfMessage.getField(MdcGelfMessageAssembler.FIELD_STACK_TRACE), containsString("skipped"));
  }