@Test
public void testPostHandle_NormalLogOutput() throws Exception {

    // parameter create
    HandlerMethod paramHandler = new HandlerMethod(controller, TraceLoggingInterceptorController.class
            .getMethod("createForm"));
    long startTime = System.nanoTime();
    request.setAttribute(TraceLoggingInterceptor.class.getName()
            + ".startTime", startTime);
    try {
        // run
        interceptor.postHandle(request, response, paramHandler, model);
    } catch (Exception e) {
        fail("illegal case");
    }
    // expected
    String logMessage1 = jdbcTemplate.queryForObject(
            "SELECT FORMATTED_MESSAGE FROM LOGGING_EVENT WHERE EVENT_ID=:id",
            Collections.singletonMap("id", 1), String.class);
    String logMessage2 = jdbcTemplate.queryForObject(
            "SELECT FORMATTED_MESSAGE FROM LOGGING_EVENT WHERE EVENT_ID=:id",
            Collections.singletonMap("id", 2), String.class);
    assertThat(logMessage1, is(
            "[END CONTROLLER  ] TraceLoggingInterceptorController.createForm()-> view=null, model={}"));
    assertThat(logMessage2.startsWith(
            "[HANDLING TIME   ] TraceLoggingInterceptorController.createForm()->"),
            is(true));
}