2013-02-25 1 views
1

Использование Netty 4.0.0.Beta1, что было бы лучшим способом для регистрации входящего/исходящего HTTP-трафика на нетто-сервере? Мой трубопровод в настоящее время:Как регистрировать HTTP-запросы/ответы в Netty 4.0.0.Beta1?

p.addLast("decoder", new HttpRequestDecoder()); 
p.addLast("aggregator", new HttpObjectAggregator(1048576)); 

p.addLast("encoder", new HttpResponseEncoder()); 
p.addLast("handler", new MyBusinessLogicHandler()); 

Я пытался писать обработчик, который реализует ChannelInboundMessageHandler<FullHttpRequest>, а затем делает каротаж в inboundBufferUpdated(ChannelHandlerContext ctx) метода, который, кажется, работает хорошо для входящих запросов, но является то, что рекомендуемый путь?

Когда я попытался реализовать ChannelOutboundMessageHandler<FullHttpResponse>, мне не удалось увидеть фактические объекты FullHttpResponse внутри метода flush(ChannelHandlerContext ctx, ChannelPromise promise).

Предложения? Благодаря!

+1

Так что я более или менее выяснил, что у меня была простая проблема с тем, где я размещал свои обработчики регистрации. Я все еще реализую 'ChannelInboundMessageHandler ' и 'ChannelOutboundMessageHandler '. Это лучший подход? – Baron

+1

да, это лучший способ сделать это. –

ответ

4

Примечание: API-интерфейс Netty сильно изменился с момента его бета-тестирования. Теперь вы можете просто добавить LoggingHandler в конвейер. MessageLoggingHandler и ByteLoggingHandler исчезли.

Вы можете положить MessageLoggingHandler после обработчиков кодеков в вашем конвейере (т.е. до MyBusinessLogicHandler). По умолчанию он регистрирует все сообщения и события на уровне DEBUG, поэтому вы можете настроить его. Если вы заинтересованы в дампе низкого уровня, используйте ByteLoggingHandler и поместите его перед обработчиками кодеков.

+0

В какой файл должна входить эта конфигурация? Я использую netty в Playframework. Я не знаю, где указать netty для создания журнала доступа HTTP. – devdanke

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

  • Нет связанных вопросов^_^