Apache http 组件服务器线路日志
Apache http compoents server wire logs
我正在 Apache httpcomponents httpcore-4.4.1.jar 中的 HTTP 服务器之上构建一个小型应用程序。我想要类似于 http 客户端线路日志 -Dorg.apache.commons.logging.simplelog.log.org.apache.http.wire
的日志。到目前为止检查代码我找不到这样的东西,所以我想我可以自己实现类似的东西。我可以覆盖 org.apache.http.impl.BHttpConnectionBase.getSocketInputStream(Socket)
和 getSocketOutputStream
但是我不确定如何 "plug in" 我的新 class 进入服务器。
也欢迎其他想法,但请不要推荐使用 Wireshark 或 Fiddler 等捕获间歇性流量。
可以在扩展 org.apache.http.impl.DefaultBHttpServerConnection
的 class 中覆盖这 2 个方法。这个新的 class 需要由覆盖 org.apache.http.impl.DefaultBHttpServerConnectionFactory.createConnection(Socket)
的 class 返回,然后可以使用 setConnectionFactory
方法将其设置为 HTTP 服务器:
final HttpServer server = ServerBootstrap.bootstrap()
.setConnectionFactory(connectionFactory)
.setListenerPort(9090)
.setHttpProcessor(httpProcessor)
.setSocketConfig(socketConfig)
.setExceptionLogger(new StdErrorExceptionLogger ())
.setHandlerMapper(handle_map)
.create();
server.start();
我正在 Apache httpcomponents httpcore-4.4.1.jar 中的 HTTP 服务器之上构建一个小型应用程序。我想要类似于 http 客户端线路日志 -Dorg.apache.commons.logging.simplelog.log.org.apache.http.wire
的日志。到目前为止检查代码我找不到这样的东西,所以我想我可以自己实现类似的东西。我可以覆盖 org.apache.http.impl.BHttpConnectionBase.getSocketInputStream(Socket)
和 getSocketOutputStream
但是我不确定如何 "plug in" 我的新 class 进入服务器。
也欢迎其他想法,但请不要推荐使用 Wireshark 或 Fiddler 等捕获间歇性流量。
可以在扩展 org.apache.http.impl.DefaultBHttpServerConnection
的 class 中覆盖这 2 个方法。这个新的 class 需要由覆盖 org.apache.http.impl.DefaultBHttpServerConnectionFactory.createConnection(Socket)
的 class 返回,然后可以使用 setConnectionFactory
方法将其设置为 HTTP 服务器:
final HttpServer server = ServerBootstrap.bootstrap()
.setConnectionFactory(connectionFactory)
.setListenerPort(9090)
.setHttpProcessor(httpProcessor)
.setSocketConfig(socketConfig)
.setExceptionLogger(new StdErrorExceptionLogger ())
.setHandlerMapper(handle_map)
.create();
server.start();