我将 Restlet 与 Jetty8 一起使用。Jetty 记录所有来电。我还想记录所有响应数据,网址和正文。放置日志代码的最佳位置在哪里?
我认为 createOutboundRoot 是这个地方,但我不知道如何使用它,并且在网络上找不到任何示例。
我从未尝试过,但我会从自定义过滤器开始并覆盖后处理,这似乎是 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
}
}
createInboundRoot
如果您有Application
对象,请在您的中使用它:
public synchronized Restlet createInboundRoot() {
final Router router = new Router(getContext());
CustomLogFilter filter = new CustomLogFilter();
filter.setNext(router);
return filter;
}