在Restlet中记录响应的最佳方法在哪里

时间:2013-07-07 10:34:03

标签: restlet jetty-8

我在Jetty8上使用Restlet。 Jetty记录所有来电。 我想记录所有响应数据,网址和正文。 放置日志代码的最佳位置在哪里?

我认为createOutboundRoot就是这个地方,但我没有弄清楚如何使用它,也无法在网络上找到任何示例。

2 个答案:

答案 0 :(得分:0)

我从来没有尝试过,但是我会先使用自定义过滤器并覆盖After句柄,这似乎是Restlet本身在内部进行日志记录的方式,请参阅LogFilter类。

答案 1 :(得分:0)

实现了这样的日志过滤器:

public class CustomLogFilter extends Filter {



public CustomLogFilter() {
    super();
}

protected int beforeHandle(Request request, Response response) {
    int returned = super.beforeHandle(request, response);
    // Do specific log if needed
    return returned;
}


protected void afterHandle(Request request, Response response) {
    super.afterHandle(request, response);
    // Do specific log if needed
}

}

如果您有createInboundRoot对象,请在Application中使用它:

   public synchronized Restlet createInboundRoot() {
          final Router router = new Router(getContext());
          CustomLogFilter filter = new CustomLogFilter();
          filter.setNext(router);
          return filter;
   }