2013-05-03 173 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