0

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

我认为 createOutboundRoot 是这个地方,但我不知道如何使用它,并且在网络上找不到任何示例。

4

2 回答 2

0

我从未尝试过,但我会从自定义过滤器开始并覆盖后处理,这似乎是 Restlet 本身在内部进行日志记录的方式,请参见 LogFilter 类。

于 2013-07-18T11:17:46.733 回答
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;
   }
于 2013-07-25T16:20:27.520 回答