Yep, unfortunately you have no choice...
But here's a something you can do...
1- Attach a custom log handler to the router. You can copy the one from vertx and modify it to your needs. We modified it by generating a uuid/request-id from headers and put into the context as rc.put("uuid/requestid", ...)
router.route().handler(new MyCustomLogHandler());
2- In your web handlers you can access it with rc.get("uuid/or what ever you called it."
3- If you are using eventbus or services, you need to pass the uuid to your service function.
4- Optional, but good to have. Using logstash-logback-encoder (Good way to create json logs, DOES NOT really require logstash). It allows you to do stuff like this...
value("uuid", uuid), <-- static method from logstash-logback-encoder. Basically injects key/value into the log and then outputs as Json.
message,
value("tag", "general"));