Repository: quarkusio/quarkus
Issue: Endpoint access not logged into access log when root-path and non-application-root-path are under different root

### Describe the bug

Originally reported in https://github.com/smallrye/smallrye-health/issues/412.

When non app root is rooted under different root than app HTTP root a new main router is created and thus we add access log handler only to the HTTP root and not the new main root. 

### Expected behavior

Non app access are logged into the access log.

### Actual behavior

Not logged as showed in https://github.com/smallrye/smallrye-health/issues/412.

### How to Reproduce?

_No response_

### Output of `uname -a` or `ver`

_No response_

### Output of `java -version`

_No response_

### GraalVM version (if different from Java)

_No response_

### Quarkus version or git rev

_No response_

### Build tool (ie. output of `mvnw --version` or `gradlew --version`)

_No response_

### Additional information

_No response_

Changed files:
extensions/vertx-http/deployment/src/main/java/io/quarkus/vertx/http/deployment/VertxHttpProcessor.java
extensions/vertx-http/runtime/src/main/java/io/quarkus/vertx/http/runtime/VertxHttpRecorder.java

diff --git a/extensions/vertx-http/deployment/src/main/java/io/quarkus/vertx/http/deployment/VertxHttpProcessor.java b/extensions/vertx-http/deployment/src/main/java/io/quarkus/vertx/http/deployment/VertxHttpProcessor.java
index 5f535780bfd..c8155cb1f62 100644
--- a/extensions/vertx-http/deployment/src/main/java/io/quarkus/vertx/http/deployment/VertxHttpProcessor.java
+++ b/extensions/vertx-http/deployment/src/main/java/io/quarkus/vertx/http/deployment/VertxHttpProcessor.java
@@ -291,7 +291,9 @@ ServiceStartBuildItem finalizeRouter(
         recorder.finalizeRouter(beanContainer.getValue(),
                 defaultRoute.map(DefaultRouteBuildItem::getRoute).orElse(null),
                 listOfFilters, vertx.getVertx(), lrc, mainRouter, httpRouteRouter.getHttpRouter(),
-                httpRouteRouter.getMutinyRouter(),
+                httpRouteRouter.getMutinyRouter(), httpRouteRouter.getFrameworkRouter(),
+                nonApplicationRootPathBuildItem.isDedicatedRouterRequired(),
+                nonApplicationRootPathBuildItem.isAttachedToMainRouter(),
                 httpRootPathBuildItem.getRootPath(),
                 launchMode.getLaunchMode(),
                 !requireBodyHandlerBuildItems.isEmpty(), bodyHandler, gracefulShutdownFilter,
diff --git a/extensions/vertx-http/runtime/src/main/java/io/quarkus/vertx/http/runtime/VertxHttpRecorder.java b/extensions/vertx-http/runtime/src/main/java/io/quarkus/vertx/http/runtime/VertxHttpRecorder.java
index 00da9c567b7..983dbc6e315 100644
--- a/extensions/vertx-http/runtime/src/main/java/io/quarkus/vertx/http/runtime/VertxHttpRecorder.java
+++ b/extensions/vertx-http/runtime/src/main/java/io/quarkus/vertx/http/runtime/VertxHttpRecorder.java
@@ -334,6 +334,8 @@ public void finalizeRouter(BeanContainer container, Consumer<Route> defaultRoute
             List<Filter> filterList, Supplier<Vertx> vertx,
             LiveReloadConfig liveReloadConfig, Optional<RuntimeValue<Router>> mainRouterRuntimeValue,
             RuntimeValue<Router> httpRouterRuntimeValue, RuntimeValue<io.vertx.mutiny.ext.web.Router> mutinyRouter,
+            RuntimeValue<Router> frameworkRouter,
+            boolean nonApplicationDedicatedRouter, boolean nonApplicationAttachedToMainRouter,
             String rootPath, LaunchMode launchMode, boolean requireBodyHandler,
             Handler<RoutingContext> bodyHandler,
             GracefulShutdownFilter gracefulShutdownFilter, ShutdownConfig shutdownConfig,
@@ -552,7 +554,11 @@ public void handle(HttpServerRequest event) {
             }
             AccessLogHandler handler = new AccessLogHandler(receiver, accessLog.pattern, getClass().getClassLoader(),
                     accessLog.excludePattern);
+            if (nonApplicationDedicatedRouter && !nonApplicationAttachedToMainRouter) {
+                frameworkRouter.getValue().route().order(Integer.MIN_VALUE).handler(handler);
+            }
             httpRouteRouter.route().order(Integer.MIN_VALUE).handler(handler);
+
             quarkusWrapperNeeded = true;
         }