2013-05-03 95 views
0

我已经使用Restlet 2.1.2创建了一个简单的REST服务器,它工作得很好。每一个岗位或GET请求导致的Restlet发出以下形式的日志消息:Restlet:如何取消服务器请求日志消息

2013-05-02 19:44:39 127.0.0.1 - - 8081 POST /rest/dispatch - 200 - - 21 http://127.0.0.1:8081Restlet-Framework/2.1.2 - 

有很多要求,这是不是为应用程序来收集这些信息很重要。问题:

  • 从哪个类发出的消息?我试图grep通过Restlet源代码来找到它,但没有运气。
  • 这些消息正在发送到标准输出。我如何直接将它们写入文件?
  • 如何配置它,以便只有在响应状态不是200时才会生成此类消息?

非常感谢您的任何信息。 PS:我发现了一些似乎相关的链接,虽然我还没有搞清楚到底需要做什么。我将把这些留在这里供将来参考。

回答

1

简单地创建并设置NullLogService,说所有的请求都没有为loggable:

public class NullLogService extends LogService 
{ 
    @Override 
    public boolean isLoggable(Request request) { 
     return false; 
    } 
} 

然后设置为您的日志服务:

public static void main(String[] args) throws Exception { 
    Component component = new Component(); 
    component.getServers().add(Protocol.HTTP, 8082); 

    Application application = new RestletTestResource(); 

    component.getDefaultHost().attach(application); 
    component.setLogService(new NullLogService()); 
    component.start();  
} 
+0

万分感谢!关于仅记录具有200以外的HTTP返回代码的响应,我想我可以从'isLoggable'的参数中提取它? – 2013-10-07 18:56:44

+0

似乎是一个体面的方式来做到这一点 – 2013-10-07 23:52:20