Vertx日志记录:访问请求上下文

时间:2018-06-29 16:39:05

标签: logging vert.x

这似乎是一个常见问题:我们希望使用一些自定义消息记录与路由上下文相关的数据。对于按线程请求的应用程序,我们使用了线程本地MDC。但是,Vert.x应用程序是否有任何类似的解决方案? 可能是某些Vertx记录器可以在事件循环内运行并管理所有请求。

谢谢。

1 个答案:

答案 0 :(得分:1)

假设您正在使用的是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);

希望有帮助!