我将Restlet与Jetty8一起使用。码头记录所有来电。我还想记录所有的响应数据,网址和正文。放置日志代码的最佳位置是哪里?
我以为createOutboundRoot就是这个地方,但我不知道如何使用它,在网上也找不到任何例子。
我从未尝试过,但我会从自定义过滤器开始,并覆盖After句柄,这似乎是Restlet本身在内部进行日志记录的方式。请参阅LogFilter类。
实现这样的日志过滤器:
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
}
}
如果您有Application
对象,请在createInboundRoot
中使用它:
public synchronized Restlet createInboundRoot() {
final Router router = new Router(getContext());
CustomLogFilter filter = new CustomLogFilter();
filter.setNext(router);
return filter;
}