使用Netty 4.0.0.Beta1,将传入/传出HTTP流量记录到基于netty的服务器的最佳方法是什么?我的管道目前是:
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>
时,我没有成功查看flush(ChannelHandlerContext ctx, ChannelPromise promise)
方法中的实际FullHttpResponse对象。
连连呢?谢谢!
答案 0 :(得分:4)
注意:自测试版发布以来,Netty API发生了很大变化。现在,您只需在管道中添加LoggingHandler
即可。 MessageLoggingHandler
和ByteLoggingHandler
已消失。
您可以将MessageLoggingHandler
放在管道中的编解码器处理程序之后(即MyBusinessLogicHandler
之前)。默认情况下,它会记录DEBUG
级别的所有邮件和事件,因此您可能需要对其进行调整。如果您对低级别流量转储感兴趣,请使用ByteLoggingHandler
并将其放在编解码器处理程序之前。