2013-05-03 3 views
0

Я создал простой сервер REST с помощью Restlet 2.1.2, и он работает очень хорошо. Каждый POST или 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

Благодарит миллион! О регистрации только ответов, у которых есть код возврата HTTP, отличный от 200, я полагаю, я мог бы извлечь это из аргумента 'isLoggable'? –

+0

похоже, что это был бы достойный способ сделать это –

Смежные вопросы