@Test
  public void testFields() throws Exception {

    Logger logger = Logger.getLogger(getClass());
    MDC.put("mdcField1", "a value");
    MDC.remove(GelfUtil.MDC_REQUEST_START_MS);

    logger.info(LOG_MESSAGE);
    assertEquals(1, GelfTestSender.getMessages().size());

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

    assertEquals("fieldValue1", gelfMessage.getField("fieldName1"));
    assertEquals("fieldValue2", gelfMessage.getField("fieldName2"));
    assertEquals("a value", gelfMessage.getField("mdcField1"));
    assertNotNull(gelfMessage.getField(LogMessageField.NamedLogField.SourceLineNumber.name()));
    assertEquals(
        "testFields", gelfMessage.getField(LogMessageField.NamedLogField.SourceMethodName.name()));
    assertEquals(
        AbstractGelfLogAppenderTest.class.getName(),
        gelfMessage.getField(LogMessageField.NamedLogField.SourceClassName.name()));
    assertEquals("a value", gelfMessage.getField("mdcField1"));
    assertNull(gelfMessage.getField("mdcField2"));

    assertNull(gelfMessage.getField(GelfUtil.MDC_REQUEST_DURATION));
    assertNull(gelfMessage.getField(GelfUtil.MDC_REQUEST_END));
  }