【问题标题】:Where is the best way to log response in Restlet在 Restlet 中记录响应的最佳方式在哪里
【发布时间】:2013-07-26 00:20:27
【问题描述】:

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

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

【问题讨论】:

    标签: restlet jetty-8


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      实现这样的日志过滤器:

      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;
         }
      

      【讨论】:

        猜你喜欢
        • 2023-01-20
        • 2020-05-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-02
        • 2018-03-27
        • 1970-01-01
        相关资源
        最近更新 更多