diff --git a/extensions/vertx-http/runtime/src/main/java/io/quarkus/vertx/http/runtime/attribute/DateTimeAttribute.java b/extensions/vertx-http/runtime/src/main/java/io/quarkus/vertx/http/runtime/attribute/DateTimeAttribute.java index ade164d92f850..de5c3aae57bd0 100644 --- a/extensions/vertx-http/runtime/src/main/java/io/quarkus/vertx/http/runtime/attribute/DateTimeAttribute.java +++ b/extensions/vertx-http/runtime/src/main/java/io/quarkus/vertx/http/runtime/attribute/DateTimeAttribute.java @@ -13,7 +13,7 @@ */ public class DateTimeAttribute implements ExchangeAttribute { - private static final String COMMON_LOG_PATTERN = "[dd/MMM/yyyy:HH:mm:ss Z]"; + private static final String COMMON_LOG_PATTERN = "'['dd/MMM/yyyy:HH:mm:ss Z']'"; public static final String DATE_TIME_SHORT = "%t"; public static final String DATE_TIME = "%{DATE_TIME}"; diff --git a/integration-tests/vertx-http/src/test/java/io/quarkus/it/vertx/AccessLogTestCase.java b/integration-tests/vertx-http/src/test/java/io/quarkus/it/vertx/AccessLogTestCase.java index da7b395710d3e..5d0051a1b75ee 100644 --- a/integration-tests/vertx-http/src/test/java/io/quarkus/it/vertx/AccessLogTestCase.java +++ b/integration-tests/vertx-http/src/test/java/io/quarkus/it/vertx/AccessLogTestCase.java @@ -2,7 +2,6 @@ import static org.hamcrest.Matchers.containsString; -import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; @@ -23,12 +22,11 @@ public class AccessLogTestCase { /** * Fires a HTTP request, to an application which has access log enabled and then checks * the access-log contents to verify that the request was logged - * - * @throws Exception */ @Test - public void testAccessLogContent() throws Exception { + public void testAccessLogContent() { final Path logDirectory = Paths.get(".", "target"); + final Path accessLogFilePath = logDirectory.resolve("quarkus-access-log.log"); final String queryParamVal = UUID.randomUUID().toString(); final String targetUri = "/simple/access-log-test-endpoint?foo=" + queryParamVal; RestAssured.when().get(targetUri).then().body(containsString("passed")); @@ -37,15 +35,18 @@ public void testAccessLogContent() throws Exception { .untilAsserted(new ThrowingRunnable() { @Override public void run() throws Throwable { - final Path accessLogFilePath = logDirectory.resolve("quarkus-access-log.log"); Assertions.assertTrue(Files.exists(accessLogFilePath), "access log file " + accessLogFilePath + " is missing"); - String data = new String(Files.readAllBytes(accessLogFilePath), StandardCharsets.UTF_8); - Assertions.assertTrue(data.contains(targetUri), + String line = Files.readString(accessLogFilePath); + Assertions.assertTrue(line.startsWith("127.0.0.1 - - ["), + "access log doesn't contain request IP or does not wrap the date with []: " + line); + Assertions.assertTrue(line.contains("] \"GET"), + "access log doesn't contain the HTTP method or does not wrap the date with []: " + line); + Assertions.assertTrue(line.contains(targetUri), "access log doesn't contain an entry for " + targetUri); - Assertions.assertTrue(data.contains("?foo=" + queryParamVal), + Assertions.assertTrue(line.contains("?foo=" + queryParamVal), "access log is missing query params"); - Assertions.assertFalse(data.contains("?foo=" + queryParamVal + "?foo=" + queryParamVal), + Assertions.assertFalse(line.contains("?foo=" + queryParamVal + "?foo=" + queryParamVal), "access log contains duplicated query params"); } });