如何在Netty 4.0.0.Beta1中记录HTTP请求/响应?

如何在Netty 4.0.0.Beta1中记录HTTP请求/响应?,netty,Netty,使用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 My

使用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的处理程序,然后在inboundBufferUpdatedChannelHandlerContext ctx方法中进行日志记录,这对于传入的请求似乎很好,但这是推荐的方法吗

当我尝试实现ChannelOutboundMessageHandler时,我没有成功地看到flushChannelHandlerContext ctx、ChannelPromise方法中的实际FullHttpResponse对象


建议?谢谢

注意:Netty API自测试版以来已经发生了很大的变化。现在,您可以在管道中添加一个LoggingHandler。MessageLoggingHandler和ByteLoggingHandler不见了


您可以将MessageLoggingHandler放在管道中的编解码器处理程序之后,即MyBusinessLogicHandler之前。默认情况下,它会在调试级别记录所有消息和事件,所以您可能需要调整它。如果您对低级流量转储非常感兴趣,请使用ByteLoggingHandler并将其置于编解码器处理程序之前。

注意:Netty API自测试版以来发生了很大变化。现在,您可以在管道中添加一个LoggingHandler。MessageLoggingHandler和ByteLoggingHandler不见了


您可以将MessageLoggingHandler放在管道中的编解码器处理程序之后,即MyBusinessLogicHandler之前。默认情况下,它会在调试级别记录所有消息和事件,所以您可能需要调整它。如果您对低级流量转储非常感兴趣,请使用ByteLoggingHandler并将其放在编解码器处理程序之前。

因此,我或多或少发现我在放置日志处理程序时遇到了一个简单的问题。我仍然在实现ChannelInboundMessageHandler和ChannelOutboundMessageHandler。这是最好的方法吗?是的,这是最好的方法。所以我或多或少地发现我在放置日志处理程序时遇到了一个简单的问题。我仍然在实现ChannelInboundMessageHandler和ChannelOutboundMessageHandler。这是最好的方法吗?是的,这是最好的方法。这个配置应该放在哪个文件中?我在Playframework中使用netty。我不知道在哪里告诉netty创建HTTP访问日志。这个配置应该进入哪个文件?我在Playframework中使用netty。我不知道在哪里告诉netty创建HTTP访问日志。