这看起来是常见问题:我们希望使用一些自定义消息来记录与路由上下文相关的数据。对于每线程请求应用程序,我们使用线程本地 MDC。但是 Vert.x 应用程序有类似的解决方案吗? 可能是一些在事件循环内工作并管理所有请求的 Vertx 记录器。
谢谢。
最佳答案
假设这是您正在使用的 Vert.x-Web...您可以采取的一种方法是添加 Handler<RoutingContext>
到Router
并将其配置为针对每个请求运行。在 Java 中,可能看起来像这样:
// the Handler with your custom logging
final Handler<RoutingContext> loggingHandler = routingContext -> {
final HttpServerRequest request = routingContext.request();
System.out.println(request.getParam("foo"));
routingContext.next();
};
// use Router.route() to configure a handler that runs on every
// request regardless of method or path
final Router router = Router.router(Vertx.vertx());
router.route().handler(loggingHandler);
希望有帮助!
关于logging - 顶点日志记录 : access to request context,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51106146/