我在Jetty8上使用Restlet。 Jetty记录所有来电。 我想记录所有响应数据,网址和正文。 放置日志代码的最佳位置在哪里?
我认为createOutboundRoot就是这个地方,但我没有弄清楚如何使用它,也无法在网络上找到任何示例。
答案 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;
}